Advertisement
Guest User

Untitled

a guest
Jun 8th, 2022
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.47 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <cmath>
  4. #include <iostream>
  5. #include <locale.h>
  6. #include <string.h>
  7. #include <conio.h>
  8. #include <Windows.h> // Библиотека Windows API
  9. using namespace std;
  10.  
  11. int main()
  12. {
  13.     setlocale(LC_ALL, "Russian");
  14.     system("chcp 1251");
  15.     system("cls");
  16.  
  17.     int i, j, z, p, x, y, d;
  18.     int m1 = 100000, m2 = 100000, m3 = 100000;
  19.     int min, sec, t, l, h, L;
  20.     float mP = 1000;
  21.  
  22.     struct Sports
  23.     {
  24.         char F[30];  // Фамилия спортсмена
  25.         char S[3];  // Страна, которую представляет спортсмен
  26.         int T;    // Время прохождения дистанции
  27.         int P;    // Количество промахов на двух рубежах
  28.         float L;  // Промахи участников страны
  29.         float U;  // Количество участников страны
  30.         float PP; // Процент попаданий участников страны
  31.     };
  32.  
  33.     printf("Количество спортсменов: ");
  34.     scanf_s("%d", &z);
  35.  
  36.     struct Sports Biathlon[99];
  37.     for (i = 0; i < z; i++)
  38.     {
  39.         h = 1; l = 0; min = -1; sec = -1;
  40.  
  41.         printf("Фамилия ", i + 1);
  42.         printf("-го спортсмена:");
  43.         scanf_s("%S", Biathlon[i].F);
  44.         while (l != 3 || h == 0)
  45.         {
  46.             printf("Страна ", i + 1);
  47.             printf("-го спортсмена: ");
  48.             scanf_s("%S", Biathlon[i].S);
  49.  
  50.             l = strlen(Biathlon[i].S);
  51.  
  52.             for (j = 0; j < l; j++)
  53.             {
  54.                 if (isalpha(Biathlon[i].S[j]) != 0 && l == 3)
  55.                     h = 1;
  56.                 else
  57.                     h = 0;
  58.             }
  59.  
  60.             if (l != 3 || h == 0)
  61.                 printf("Название страны должно иметь трехбуквенное сокращение");
  62.  
  63.         }
  64.         printf("Количество промахов  ", i + 1);
  65.         printf("-го спортсмена на двух огневых рубежах: ");
  66.         scanf_s("%d", &p);
  67.  
  68.         printf("Время прохождения дистанции   ", i + 1);
  69.         printf("-ым спортсменом: ");
  70.    
  71.  
  72.         while (min > 60 || min < 0)
  73.         {
  74.             printf("Минуты: ");
  75.             scanf_s("%d", &min);
  76.             if (min > 60 || min < 0)
  77.                 printf("Невозможное количесвто минут");            
  78.         }
  79.  
  80.         while (sec > 60 || sec < 0)
  81.         {
  82.             printf("Секунды: ");
  83.             scanf_s("%d", &sec);
  84.             if (sec > 60 || sec < 0)
  85.                 printf("Невозможное количесвто секунд");
  86.         }
  87.  
  88.         t = min * 60 + sec;
  89.  
  90.         Biathlon[i].P = p;
  91.         Biathlon[i].T = t;
  92.         Biathlon[i].L = 0;
  93.         Biathlon[i].U = 0;
  94.         Biathlon[i].PP = 0;
  95.  
  96.         cout << endl;
  97.     }
  98.  
  99.     for (i = 0; i < z; i++)
  100.     {
  101.         for (j = 0; j < z; j++)
  102.         {
  103.             if (Biathlon[i].S == Biathlon[j].S)
  104.             {
  105.                 Biathlon[i].L += Biathlon[j].P;
  106.                 Biathlon[i].U++;
  107.             }
  108.         }
  109.  
  110.         Biathlon[i].PP = Biathlon[i].L / Biathlon[i].U;
  111.  
  112.         if (Biathlon[i].PP < mP)
  113.         {
  114.             mP = Biathlon[i].PP;
  115.             L = i;
  116.         }
  117.     }
  118.  
  119.     for (i = 0; i < z; i++)
  120.     {
  121.         if (Biathlon[i].T < m1 && z >= 1)
  122.         {
  123.             m1 = Biathlon[i].T;
  124.             x = i;
  125.         }
  126.     }
  127.  
  128.     for (i = 0; i < z; i++)
  129.     {
  130.         if (Biathlon[i].T < m2 && i != x && z >= 2)
  131.         {
  132.             m2 = Biathlon[i].T;
  133.             y = i;
  134.         }
  135.     }
  136.  
  137.     for (i = 0; i < z; i++)
  138.     {
  139.         if (Biathlon[i].T < m3 && i != x && i != y && z >= 3)
  140.         {
  141.             m3 = Biathlon[i].T;
  142.             d = i;
  143.         }
  144.     }
  145.  
  146.     printf("Наименьшее количество промахов в среднем допустила страна ", Biathlon[L].S);
  147.  
  148.     if (x != -1 && z >= 1)
  149.     {
  150.         printf("1-ое место занял ", Biathlon[L].F);
  151.         if (y != -1 && z >= 2)
  152.         {
  153.             printf("2-ое место занял ", Biathlon[y].F);
  154.             if (d != -1 && z >= 3)
  155.                 printf("3-ое место занял ", Biathlon[d].F);
  156.         }
  157.     }
  158.  
  159.     system("pause"); // Останавливаем окно консоли
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement