Определить три максимальных и два минимальных значения этого массива - C (СИ)
Формулировка задачи:
Дано натуральное число N (N> 5) и одномерный массив A1, A2, ..., AN символьных элементов. Определить три максимальных и два минимальных значения этого массива.
Решение задачи: «Определить три максимальных и два минимальных значения этого массива»
textual
Листинг программы
#include <stdio.h>
#include <limits.h>
#define N 10
int main()
{
int a[N] = {6,8,20,7,3,1,20,45,-6,-5};
int i;
int max1,max2,max3;
int min1,min2;
max1 = max2 = max3 = INT_MIN;
min1 = min2 = INT_MAX;
for (i=0; i<N; i++)
{
if (a[i]>max1 && a[i]>max2 && a[i]>max3)
{
max3 = max2;
max2 = max1;
max1 = a[i];
}
else if (a[i]<max1 && a[i]>max2)
{
max3 = max2;
max2 = a[i];
}
else if (a[i]<max1 && a[i]<max2 && a[i]>max3)
max3 = a[i];
if (a[i]<min1 && a[i]<min2)
{
min2 = min1;
min1 = a[i];
}
else if (a[i]>min1 && a[i]<min2)
min2 = a[i];
}
printf ("Max: %d %d %d\n",max1,max2,max3);
printf ("Min: %d %d\n",min1,min2);
return 0;
}
Объяснение кода листинга программы
- Объявлен массив
aтипа int размером N = 10 и инициализирован значениями: {6,8,20,7,3,1,20,45,-6,-5}. - В цикле for перебираются все элементы массива
a. - Переменные max1,max2,max3 инициализированы значением INT_MIN, что является наименьшим значением для типа int.
- Переменные min1,min2 инициализированы значением INT_MAX, что является наибольшим значением для типа int.
- Если текущий элемент массива
aбольше max1 и max2 и max3, то он становится max3, max2, max1 соответственно. - Если текущий элемент массива
aменьше max1 и больше max2, то он становится max3, max2, max1 соответственно. - Если текущий элемент массива
aменьше max1 и max2 и больше max3, то max3 становится равным текущему элементу. - Если текущий элемент массива
aменьше min1 и min2, то min2 становится равным min1, а min1 становится равным текущему элементу. - Если текущий элемент массива
aбольше min1 и меньше min2, то min2 становится равным текущему элементу. - После завершения цикла, в переменной max1,max2,max3 содержатся три максимальных значения массива
a. - В переменной min1,min2 содержатся два минимальных значения массива
a. - Выводится строка
Max: %d %d %d\n, в которую подставляются значения max1,max2,max3. - Выводится строка
Min: %d %d\n, в которую подставляются значения min1,min2. - Возвращается 0, что означает успешное завершение работы программы.