Определить три максимальных и два минимальных значения этого массива - C (СИ)

Формулировка задачи:

Дано натуральное число N (N> 5) и одномерный массив A1, A2, ..., AN символьных элементов. Определить три максимальных и два минимальных значения этого массива.

Код к задаче: «Определить три максимальных и два минимальных значения этого массива - C (СИ)»

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;
}

15   голосов, оценка 3.933 из 5


СОХРАНИТЬ ССЫЛКУ