Minmax23. Дано целое число $$N (> 3)$$ и набор из $$N$$ чисел. Найти три наибольших элемента из данного набора и вывести эти элементы в порядке убывания их значений.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
#include <stdio.h> int main(void) { int n,i; float max1,max2,max3,r; printf("N:"); scanf("%i", &n); for (i=1; i<=n; ++i){ printf("%i>",i); scanf("%f", &r); if (i==1){ max1=r; max2=r; max3=r; } if ((r>max3)&&(r!=max1)&&(r!=max2)) { if (r>max2){ if (r>max1){ max3=max2; max2=max1; max1=r; } else { max3=max2; max2=r; } } else max3=r; } if (max1==max2) max2=r; if ((max3==max1)||(max3==max2)) max3=r; } printf("%f %f %f\n",max1,max2,max3); return 0; } |
Другие задачи из раздела Minmax можно посмотреть здесь.
Комментарии: