Найти в массиве 2 максимальных элемента - C (СИ)
Формулировка задачи:
Заполнить массив из 10 элементов случайными числами в интервале(-10 ...10) и найти в нем 2 максимальных элемента
Решение задачи: «Найти в массиве 2 максимальных элемента»
textual
Листинг программы
#include <stdio.h> void max2(int *Arr, int n, int *m1, int *m2) { int i,flg; flg=0; m1=Arr[0]; for (i=1; i<n; i++) if (Arr[i] > *m1) { *m2=*m1; *m1=Arr[i]; flg=-1; } else if (flg==0) { *m2=Arr[i]; flg=-1; } else if (Arr[i]>*m2) *m2=Arr[i]; } int main(int argc, char *argv[]) { int Arr[10]={6,-8,5,32,8,9,12,0,7,11}; int q1,q2; max2(Arr,10,q1,q2); printf("%d %d\n",q1,q2); }
Объяснение кода листинга программы
В данном коде реализована функция max2
, которая выполняет следующие действия:
- Принимает на вход массив
Arr
типаint
и его размерn
. - Инициализирует два указателя
m1
иm2
значением первого элемента массиваArr
. - Переменная
flg
инициализируется нулем. Она используется для контроля нахождения максимального элемента. - Если текущий элемент массива
Arr[i]
больше значенияm1
, то выполняются следующие действия:- Значение
m2
присваивается значениеm1
. - Значение
m1
присваивается значениеArr[i]
. - Переменная
flg
принимает значение -1.
- Значение
- Если текущий элемент массива
Arr[i]
меньше или равен значениюm1
, то выполняются следующие действия:- Если
flg
равно нулю, то выполняются следующие действия:- Значение
m2
присваивается значениеArr[i]
. - Переменная
flg
принимает значение -1.
- Значение
- Если
flg
равно -1, то выполняются следующие действия:- Если
Arr[i]
больше значенияm2
, то значениеm2
присваивается значениеArr[i]
.
- Если
- Если
- Возвращает два максимальных элемента массива
Arr
. В функцииmain
создается массивArr
размера 10 и инициализируется значениями. Затем вызывается функцияmax2
, передавая в нее массивArr
и его размер. После этого выводятся два максимальных элемента массива на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д