Для решения этой задачи я написал функцию, которой на вход достаточно подать любой список из чисел, после чего она вернёт максимальную разницу его соседних элементов. Исходный код будет приложен ниже. Для демонстрации работы функции я также ввёл список [1, 3, 6, 10, 15, 17, 18, 29, 32] и посчитал его максимальную разницу для соседних элементов. Прилагаю также файл с исходным кодом (main.txt) и скриншот работы программы на моём списке.
Объяснение:
Исходный код:
# Функция, которая находит максимальную разницу между соседними элемента списка, который мы ей дадим
def max_diff_in_list(some_list):
max_diff = 0 # Текущая известная максимальная разницы
for num_index in range(len(some_list) - 1): # Берём индекс для каждого элемента от первого до предпоследнего...
next_num_index = num_index + 1 # Также фиксируем индекс каждого элемента соответственно от второго до последнего
current_diff = some_list[next_num_index] - some_list[num_index] # Считаём разницу 1 и 2, 2 и 3, ..., N-1 и N элементов
if abs(current_diff) > max_diff: # Если эта разница больше текущей известной максимальной разницы...
max_diff = current_diff # то фиксируем эту разницу
return max_diff # Выводим ту максимальную разницу, которую нашли за всё время
# Список для демонстрации функции
nums_list = [1, 3, 6, 10, 15, 17, 18, 29, 32]
print("Наибольшая разница между соседними элементами в списке", nums_list, "составляет:", max_diff_in_list(nums_list))
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
srand(time(NULL));
int rows, cols;
cout << "Rows: ";
cin >> rows;
cout << "Cols: ";
cin >> cols;
cout << endl;
int** arr = new int* [rows];
for (int i = 0; i < rows; i++)
{
arr[i] = new int[cols];
}
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
{
arr[i][j] = rand() % 100;
cout.width(3);
cout << arr[i][j];
}
cout << endl;
}
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
{
for (int k = cols - 1; k >= 0; k--)
{
if (arr[i][k - 1] > arr[i][k])
{
int temp = arr[i][k - 1];
arr[i][k - 1] = arr[i][k];
arr[i][k] = temp;
}
}
}
}
cout << endl;
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
{
cout.width(3);
cout << arr[i][j];
}
cout << endl;
}
for (int i = 0; i < rows; i++)
{
delete[] arr[i];
}
delete[] arr;
}
Объяснение:
Для решения этой задачи я написал функцию, которой на вход достаточно подать любой список из чисел, после чего она вернёт максимальную разницу его соседних элементов. Исходный код будет приложен ниже. Для демонстрации работы функции я также ввёл список [1, 3, 6, 10, 15, 17, 18, 29, 32] и посчитал его максимальную разницу для соседних элементов. Прилагаю также файл с исходным кодом (main.txt) и скриншот работы программы на моём списке.
Объяснение:
Исходный код:
# Функция, которая находит максимальную разницу между соседними элемента списка, который мы ей дадим
def max_diff_in_list(some_list):
max_diff = 0 # Текущая известная максимальная разницы
for num_index in range(len(some_list) - 1): # Берём индекс для каждого элемента от первого до предпоследнего...
next_num_index = num_index + 1 # Также фиксируем индекс каждого элемента соответственно от второго до последнего
current_diff = some_list[next_num_index] - some_list[num_index] # Считаём разницу 1 и 2, 2 и 3, ..., N-1 и N элементов
if abs(current_diff) > max_diff: # Если эта разница больше текущей известной максимальной разницы...
max_diff = current_diff # то фиксируем эту разницу
return max_diff # Выводим ту максимальную разницу, которую нашли за всё время
# Список для демонстрации функции
nums_list = [1, 3, 6, 10, 15, 17, 18, 29, 32]
print("Наибольшая разница между соседними элементами в списке", nums_list, "составляет:", max_diff_in_list(nums_list))