Qellex

4.2 v - 7

Dec 7th, 2021
711
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "stdio.h" // подключение ввода, вывода  
  2. #include "locale.h" // подключение русского языка  
  3.  
  4. int countSolvedProblems(int a, int b, int c)
  5. {
  6.     int result = 0;
  7.     if (a > 0) result++;
  8.     if (b > 0) result++;
  9.     if (c > 0) result++;
  10.     return result;
  11. }
  12.  
  13. float calculatePenalty(float a, float b, float c)
  14. {
  15.     float result;
  16.     result = a + b + c;
  17.     return result;
  18. }
  19.  
  20. void inputData(int* a, int* b, int* c, float* t, int* r) {
  21.     int n, m, k;
  22.     float z1, z2, z3;
  23.     printf("Введите кол-во попыток решения задач A B C, через пробел.\n");
  24.     scanf_s("%d%d%d", a, b, c);
  25.     if (*a > 0) {
  26.         printf("Введите время решение задачи A (часы минуты секунды, через запятую)\n");
  27.         scanf_s("%d%d%d", &n, &m, &k);
  28.         z1 = n * 60 + m + k / 60.0;
  29.     }
  30.     else z1 = 20;
  31.     if (*b > 0) {
  32.         printf("Введите время решение задачи B (часы минуты секунды, через запятую)\n");
  33.         scanf_s("%d%d%d", &n, &m, &k);
  34.         z2 = n * 60 + m + k / 60.0;
  35.     }
  36.     else z2 = 20;
  37.     if (*c > 0) {
  38.         printf("Введите время решение задачи C (часы минуты секунды, через запятую)\n");
  39.         scanf_s("%d%d%d", &n, &m, &k);
  40.         z3 = n * 60 + m + k / 60.0;
  41.     }
  42.     else z3 = 20;
  43.     *t = calculatePenalty(z1, z2, z3);
  44.     *r = countSolvedProblems(*a, *b, *c);
  45. }
  46.  
  47. void printTable(int a1, int b1, int c1, int r1, float t1, int a2, int b2, int c2, int r2, float t2, int a3, int b3, int c3, int r3, float t3, int w1, int w2, int w3) {
  48.     printf("№\tзад. А\tзад. B\tзад. C\tРешено\tШтраф время\n");
  49.  
  50.     if (w1 == 1) {
  51.         printf("1\t%d\t%d\t%d\t%d\t%f\n", a1, b1, c1, r1, t1);
  52.         if (w2 == 2) {
  53.             printf("2\t%d\t%d\t%d\t%d\t%f\n", a2, b2, c2, r2, t2);
  54.             printf("3\t%d\t%d\t%d\t%d\t%f\n", a3, b3, c3, r3, t3);
  55.         }
  56.         else {
  57.             printf("2\t%d\t%d\t%d\t%d\t%f\n", a3, b3, c3, r3, t3);
  58.             printf("3\t%d\t%d\t%d\t%d\t%f\n", a2, b2, c2, r2, t2);
  59.  
  60.         }
  61.     }
  62.     else if (w2 == 1) {
  63.         printf("1\t%d\t%d\t%d\t%d\t%f\n", a2, b2, c2, r2, t2);
  64.         if (w1 == 2) {
  65.             printf("2\t%d\t%d\t%d\t%d\t%f\n", a1, b1, c1, r1, t1);
  66.             printf("3\t%d\t%d\t%d\t%d\t%f\n", a3, b3, c3, r3, t3);
  67.         }
  68.         else {
  69.             printf("2\t%d\t%d\t%d\t%d\t%f\n", a3, b3, c3, r3, t3);
  70.             printf("3\t%d\t%d\t%d\t%d\t%f\n", a1, b1, c1, r1, t1);
  71.         }
  72.     }
  73.     else if (w3 == 1) {
  74.         printf("3\t%d\t%d\t%d\t%d\t%f\n", a3, b3, c3, r3, t3);
  75.         if (w1 == 2) {
  76.             printf("2\t%d\t%d\t%d\t%d\t%f\n", a1, b1, c1, r1, t1);
  77.             printf("3\t%d\t%d\t%d\t%d\t%f\n", a2, b2, c2, r2, t2);
  78.         }
  79.         else {
  80.             printf("2\t%d\t%d\t%d\t%d\t%f\n", a2, b2, c2, r2, t2);
  81.             printf("3\t%d\t%d\t%d\t%d\t%f\n", a1, b1, c1, r1, t1);
  82.         }
  83.     }
  84.  
  85.     printf("\nРешено: %d\t%d\t%d\n", countSolvedProblems(a1, a2, a3), countSolvedProblems(b1, b2, b3), countSolvedProblems(c1, c2, c3));
  86. }
  87.  
  88. void isHiger(int r1, int r2, float t1, float t2, int* w1, int* w2) {
  89.     if ((r2 > r1) || (r1 == r2 && t1 > t2))
  90.         *w1 = *w2;
  91. }
  92.  
  93. int main()
  94. {
  95.     setlocale(LC_ALL, "rus");
  96.    
  97.     int a1, b1, c1, r1, w1 = 1; float t1;
  98.     int a2, b2, c2, r2, w2 = 2; float t2;
  99.     int a3, b3, c3, r3, w3 = 3; float t3;
  100.  
  101.     inputData(&a1, &b1, &c1, &t1, &r1);
  102.     inputData(&a2, &b2, &c2, &t2, &r2);
  103.     inputData(&a3, &b3, &c3, &t3, &r3);
  104.  
  105.     isHiger(r1, r2, t1, t2, &w1, &w2);
  106.     isHiger(r2, r3, t2, t3, &w2, &w3);
  107.     isHiger(r3, r1, t3, t1, &w3, &w1);
  108.  
  109.     printTable(a1, b1, c1, r1, t1, a2, b2, c2, r2, t2, a3, b3, c3, r3, t3, w1, w2, w3);
  110. }
RAW Paste Data