Разработать функцию,которая находит 2 наибольших элемента массива - C (СИ)
Формулировка задачи:
Помогите пожалуйста)))
Разработать функцию,которая находит 2 наибольших элемента массива
Решение задачи: «Разработать функцию,которая находит 2 наибольших элемента массива»
textual
Листинг программы
#include <stdio.h> #include <malloc.h> #include <conio.h> int main () { int n; printf ("n\n"); scanf ("%i",&n); int max; int max2; int j=0; int* mas = (int*)malloc(n*(sizeof(int))); for (int i=0; i<n; i++) { scanf ("%i",&mas[i]); } max = mas[0]; max2 = mas[0]; for (int i=0; i<n; i++) { if (mas[i] > max) { max = mas[i]; j=i; } } // находим самый большой, запоминаем индекс j if (max == mas[0]) { max2 = mas[1]; // для того, чтобы первый и второй максимальный элементы не совпадали } for (int i=0; i<n; i++) { if ((i != j)) { // чтобы не брать еще раз максимальный элемент if ((mas[i] >= max2) && (mas[i] <= max)) { max2 = mas[i]; } } } printf ("%i %i",max,max2); getch(); return 0; free(mas); }
Объяснение кода листинга программы
В этом коде:
- Объявлены переменные:
n
- количество элементов в массиве (input);max
- первый максимальный элемент;max2
- второй максимальный элемент;j
- индекс первого максимального элемента;mas
- указатель на начало массива.
- Запрашивается значение
n
и сохраняется в переменнойn
. - Выделяется память под массив
mas
с помощьюmalloc
. - Заполняется массив
mas
с помощьюscanf
. - Первый максимальный элемент и второй максимальный элемент инициализируются значением первого элемента массива.
- Происходит поиск первого максимального элемента, его индекса.
- Если первый максимальный элемент не совпадает со вторым, то второй максимальный элемент присваивается значению первого элемента, следующему за первым максимальным.
- Происходит поиск второго максимального элемента, начиная с элементов, которые меньше первого максимального элемента и больше или равны второму максимальному.
- Выводятся значения первого и второго максимального элемента.
- Вводится символ для подтверждения выполнения программы.
- Выполняется функция
free
, освобождающая память, выделенную под массив. - Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д