Advertisement
kkorionkk

Task2 Lr4

Nov 12th, 2021 (edited)
1,088
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.11 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. void main() {
  6.   int zozh[8][3];
  7.   int maxs[8];
  8.   int c, t;
  9.   int max_number, max_i, max_j, buff_max, buff2_max;
  10.   srand(time(NULL));
  11.   // заполняем массив случайными числами
  12.   for(int i = 0; i < 8; i++) {
  13.     c = 0;
  14.     printf("\nУчастник %d - ", i+1);
  15.     for(int j = 0; j < 3; j++) {
  16.       zozh[i][j] = rand()%100;
  17.       if(c != 3) {
  18.         printf("%d ", zozh[i][j]);
  19.       }
  20.       else {
  21.         printf("\n");
  22.         c = 0;
  23.       }
  24.     }
  25.   }
  26.   // Ищем максимальный результат
  27.   for (int i = 0; i < 8; i++) {
  28.     for(int j = 0; j < 3; j++) {
  29.       if (zozh[i][j] > max_number) {
  30.         max_i = i;
  31.         max_j = j;
  32.         max_number = zozh[i][j];
  33.       }
  34.     }
  35.   }
  36.   // Ищем спортсменов с максимальным результатов
  37.   // может быть такое что один и тот же спортсмен дважды набрал максимум
  38.   // чтобы этого избежать мы считаем количество выводов для одного и того же спортсмена
  39.   // с помощью переменной c
  40.  
  41.   // Ищем победителей
  42.   printf("\nМаксимальный результат: %d\nПобедили игроки под номер(-ом/-ами): ", max_number);
  43.   for (int i = 0; i < 8; i++) {
  44.     c = 0;
  45.     for (int j = 0; j < 3; j++) {
  46.       if (zozh[i][j] == max_number) {
  47.         if (c == 0) {
  48.             printf("%d ", i+1);
  49.             c = 1;
  50.         }
  51.       }
  52.     }
  53.   }
  54.  
  55.   // Здесь и далее по проходам фигурирует переменная t
  56.   // она проверяет есть ли в строчке результат лучше текущего
  57.   // допустим здесь ищем второе место и в этой же строчке есть первое место
  58.   // то не учитываем и идем дальше
  59.  
  60.   // Ищем второй макс результат
  61.   for (int i = 0; i < 8; i++) {
  62.     t = 0;
  63.     for (int j = 0; j < 3; j++) {
  64.       if (zozh[i][j] == max_number) {
  65.         t = 1;
  66.       }
  67.     }
  68.     for(int j = 0; j < 3; j++) {
  69.       if (zozh[i][j] > buff_max && zozh[i][j] < max_number && t == 0) {
  70.         max_i = i;
  71.         max_j = j;
  72.         buff_max = zozh[i][j];
  73.       }
  74.     }
  75.   }
  76.   printf("\nВторой максимальный результат: %d\nВторое место занял(-и) игроки под номер(-ом/-ами): ", buff_max);
  77.   for (int i = 0; i < 8; i++) {
  78.     c = 0;
  79.     for (int j = 0; j < 3; j++) {
  80.       if (zozh[i][j] == buff_max) {
  81.         if (c == 0) {
  82.             printf("%d ", i+1);
  83.             c = 1;
  84.           }
  85.         }
  86.       }
  87.     }
  88.   // Ищем третий макс результат
  89.   for (int i = 0; i < 8; i++) {
  90.     t = 0;
  91.     for (int j = 0; j < 3; j++) {
  92.       if (zozh[i][j] == buff_max) {
  93.         t = 1;
  94.       }
  95.     }
  96.     for(int j = 0; j < 3; j++) {
  97.       if (zozh[i][j] > buff2_max && zozh[i][j] < buff_max) {
  98.         max_i = i;
  99.         max_j = j;
  100.         buff2_max = zozh[i][j];
  101.       }
  102.     }
  103.   }
  104.   printf("\nТретий максимальный результат: %d\nТретье место занял(-и) игроки под номер(-ом/-ами): ", buff2_max);
  105.   for (int i = 0; i < 8; i++) {
  106.     c = 0;
  107.     for (int j = 0; j < 3; j++) {
  108.       if (zozh[i][j] == buff2_max) {
  109.         if (c == 0) {
  110.             printf("%d ", i+1);
  111.             c = 1;
  112.         }
  113.       }
  114.     }
  115.   }
  116.   // поиск максимального у участника
  117.   for (int i = 0; i < 8; i++) {
  118.     buff_max = -1;
  119.     for(int j = 0; j < 3; j++) {
  120.       if(buff_max < zozh[i][j]) {
  121.         buff_max = zozh[i][j];
  122.       }
  123.     }
  124.     maxs[i] = buff_max;
  125.   }
  126.   printf("\n");
  127.   printf("Рейтинг:\n");
  128.   c = 1;
  129.   for (int i = 100; i >= 0; i--) {
  130.     for (int j = 0; j < 8; j++) {
  131.       if (maxs[j] == i) {
  132.         printf("%d. Спротсмен %d - %d\n", c, j+1, i);
  133.         c++;
  134.       }
  135.     }
  136.   }
  137.  
  138. }
  139.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement