Определить три максимальных и два минимальных значения этого массива - 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;
}

Объяснение кода листинга программы

  1. Объявлен массив a типа int размером N = 10 и инициализирован значениями: {6,8,20,7,3,1,20,45,-6,-5}.
  2. В цикле for перебираются все элементы массива a.
  3. Переменные max1,max2,max3 инициализированы значением INT_MIN, что является наименьшим значением для типа int.
  4. Переменные min1,min2 инициализированы значением INT_MAX, что является наибольшим значением для типа int.
  5. Если текущий элемент массива a больше max1 и max2 и max3, то он становится max3, max2, max1 соответственно.
  6. Если текущий элемент массива a меньше max1 и больше max2, то он становится max3, max2, max1 соответственно.
  7. Если текущий элемент массива a меньше max1 и max2 и больше max3, то max3 становится равным текущему элементу.
  8. Если текущий элемент массива a меньше min1 и min2, то min2 становится равным min1, а min1 становится равным текущему элементу.
  9. Если текущий элемент массива a больше min1 и меньше min2, то min2 становится равным текущему элементу.
  10. После завершения цикла, в переменной max1,max2,max3 содержатся три максимальных значения массива a.
  11. В переменной min1,min2 содержатся два минимальных значения массива a.
  12. Выводится строка Max: %d %d %d\n, в которую подставляются значения max1,max2,max3.
  13. Выводится строка Min: %d %d\n, в которую подставляются значения min1,min2.
  14. Возвращается 0, что означает успешное завершение работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.933 из 5
Похожие ответы