Найти два соседних элемента массива, сумма которых максимальна - C (СИ)
Формулировка задачи:
Дан массив размера N. Найти два соседних элемента, сумма которых максимальна, и вывести эти элементы в порядке возрастания их индексов.
я пробовал решить её и вот мой результат... не судите строго, я учусь ещё) это начала только, дальше я вообще не имею понятия что делать...
#include <stdio.h>
int main()
{
int i, n,sum,max;
int array[9999];
max=0;
scanf("%d",&n);
for(i=0;i<n;i++)
array[i]=i;
for(i=0;i<n;i++)
{
sum=(array[i]+array[i+1]);
if(sum>max)
max=sum;
}
printf("%d", sum);
}Решение задачи: «Найти два соседних элемента массива, сумма которых максимальна»
textual
Листинг программы
#include <stdio.h>
int main()
{
int i, n,sum,max;
int array[9999];
max=0;
scanf("%d",&n);
for(i=0;i<n;i++)
array[i]=i;
for(i=0; i< n-1; i++) // n-1 т.к. далее используется array[i+1] Пар на 1 меньше чем чисел
{
sum=(array[i]+array[i+1]);
if(sum>max || i=0) max=sum; // так точнее
}
printf("%d", sum);
return 0; // Не критично, но так положено
}
Объяснение кода листинга программы
В этом коде:
- Объявлены переменные:
i- циклn- количество элементов в массивеsum- сумма двух элементовmax- максимальная сумма
- Задается размер массива с помощью
scanf(%d,&n);. - В цикле
for(i=0;i<n;i++)массивarray[i]=i;заполняется значениями от 0 доn-1. - В цикле
for(i=0; i< n-1; i++)перебираются все пары элементов массива, начиная с 0-ой пары. - Для каждой пары элементов
array[i]иarray[i+1]вычисляется их суммаsum=(array[i]+array[i+1]). - Если эта сумма больше текущего максимального значения
max, то обновляетсяmax=sum. При первом проходеi=0условиеif(sum>max || i=0)будет истинным, так какsumеще не было присвоено значение, равноеmax. - После завершения второго цикла значение
maxбудет содержать максимальную сумму пары элементов массива. - Результат выводится на экран с помощью
printf(%d, sum);. - Программа возвращает 0, что означает успешное выполнение.