Advertisement
Guest User

Untitled

a guest
Jun 7th, 2022
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.71 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.     cout << "Количество спортсменов: ";
  34.     cin >> z; cout << endl;
  35.  
  36.     struct Sports Biathlon[99];
  37.  
  38.     for (i = 0; i < z; i++)
  39.     {
  40.         h = 1; l = 0; min = -1; sec = -1;
  41.  
  42.         cout << "Фамилия " << i + 1 <<"-го спортсмена: ";
  43.         cin >> Biathlon[i].F;
  44.  
  45.         while (l != 3 || h == 0)
  46.         {
  47.             cout << "Страна " << i + 1 << "-го спортсмена: ";
  48.             cin >> 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.                 cout << "Название страны должно иметь трехбуквенное сокращение" << endl;
  62.         }
  63.  
  64.         cout << "Количество промахов " << i + 1 << "-го спортсмена на двух огневых рубежах: ";
  65.         cin >> p;
  66.  
  67.         cout << "Время прохождения дистанции " << i + 1 << "-ым спортсменом:" << endl;
  68.  
  69.         while (min > 60 || min < 0)
  70.         {
  71.             cout << "Минуты: "; cin >> min;
  72.  
  73.             if (min > 60 || min < 0)
  74.                 cout << "Невозможное количесвто минут" << endl;
  75.         }
  76.    
  77.         while (sec > 60 || sec < 0)
  78.         {
  79.             cout << "Секунды: "; cin >> sec;
  80.  
  81.             if (sec > 60 || sec < 0)
  82.                 cout << "Невозможное количесвто секунд" << endl;
  83.         }
  84.  
  85.         t = min * 60 + sec;
  86.  
  87.         Biathlon[i].P  = p;
  88.         Biathlon[i].T  = t;
  89.         Biathlon[i].L  = 0;
  90.         Biathlon[i].U  = 0;
  91.         Biathlon[i].PP = 0;
  92.  
  93.         cout << endl;
  94.     }
  95.  
  96.     for (i = 0; i < z; i++)
  97.     {
  98.         for (j = 0; j < z; j++)
  99.         {
  100.             if (Biathlon[i].S == Biathlon[j].S)
  101.             {
  102.                 Biathlon[i].L += Biathlon[j].P;
  103.                 Biathlon[i].U++;
  104.             }
  105.         }
  106.  
  107.         Biathlon[i].PP = Biathlon[i].L / Biathlon[i].U;
  108.  
  109.         if (Biathlon[i].PP < mP)
  110.         {
  111.             mP = Biathlon[i].PP;
  112.             L = i;
  113.         }
  114.     }
  115.  
  116.     for (i = 0; i < z; i++)
  117.     {
  118.         if (Biathlon[i].T < m1 && z >= 1)
  119.         {
  120.             m1 = Biathlon[i].T;
  121.             x = i;
  122.         }
  123.     }
  124.  
  125.     for (i = 0; i < z; i++)
  126.     {
  127.         if (Biathlon[i].T < m2 && i != x && z >= 2)
  128.         {
  129.             m2 = Biathlon[i].T;
  130.             y = i;
  131.         }
  132.     }
  133.  
  134.     for (i = 0; i < z; i++)
  135.     {
  136.         if (Biathlon[i].T < m3 && i != x && i != y && z >= 3)
  137.         {
  138.             m3 = Biathlon[i].T;
  139.             d = i;
  140.         }
  141.     }
  142.  
  143.     cout << "Наименьшее количество промахов в среднем допустила страна " << Biathlon[L].S << endl << endl;
  144.  
  145.     if (x != -1 && z >= 1)
  146.     {
  147.         cout << "1-ое место занял " << Biathlon[x].F << endl;
  148.        
  149.         if (y != -1 && z >= 2)
  150.         {
  151.             cout << "2-ое место занял " << Biathlon[y].F << endl;
  152.  
  153.             if (d != -1 && z >= 3)
  154.                 cout << "3-ое место занял " << Biathlon[d].F << endl;
  155.         }
  156.     }
  157.  
  158.     system("pause"); // Останавливаем окно консоли
  159. }
  160.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement