Advertisement
Wow_Rasl

Untitled

Jun 4th, 2022
1,107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.52 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <locale.h>
  4. #include <stdlib.h>
  5. #include "Patient.h"
  6. #define key 1
  7. void PrintPatient(struct patient *tmp) {
  8.     printf("ФИО: %s, %s, %s\n", tmp->person.surname, tmp->person.name, tmp->person.patronymic);
  9.     printf("ДАТА: %d.%d.%d\n", tmp->date.day, tmp->date.month, tmp->date.year);
  10.     printf("ДИАГНОЗ: %s\n", tmp->diagnosis);
  11. }
  12.  
  13. struct patient vec[21];
  14.  
  15.  
  16.  
  17. void func(int n) {
  18.     printf("Диагноз, который встречается у наибольшего числа больных :\n");
  19.     int mx = 0;
  20.     for (int i = 0; i < n; ++i) {
  21.         char tmp[20];
  22.         strcpy(tmp, vec[i].diagnosis);
  23.         int cnt = 0;
  24.         for (int j = 0; j < n; ++j) {
  25.             if (strcmp(vec[j].diagnosis, tmp) == 0) {
  26.                 ++cnt;
  27.             }
  28.         }
  29.         if (cnt > mx) {
  30.             mx = cnt;
  31.         }
  32.     }
  33.     int ind = 0;
  34.     char alf[20][20];
  35.     for (int i = 0; i < n; ++i) {
  36.         char tmp[20];
  37.         strcpy(tmp, vec[i].diagnosis);
  38.         int cnt = 0;
  39.         for (int j = 0; j < n; ++j) {
  40.             if (strcmp(vec[j].diagnosis, tmp) == 0) {
  41.                 ++cnt;
  42.             }
  43.         }
  44.         if (cnt == mx) {
  45.                 int flag = 1;
  46.                 for (int k = 0; k < ind; ++k) {
  47.                     if (strcmp(alf[k],tmp) == 0) {
  48.                         flag = 0;
  49.                         break;
  50.                     }
  51.                 }
  52.                 if (flag == 1) {
  53.                     printf("%s ", tmp);
  54.                     strcpy(alf[ind],tmp);
  55.                     ++ind;
  56.                     printf("\n");
  57.                 }
  58.             }
  59.     }
  60. }
  61. int main() {
  62.     setlocale(LC_ALL, "RUS");
  63. #if key == 1
  64.     printf("key = %d\n", key);
  65.     int n;
  66.     printf("Введите количество больных: \n");
  67.     scanf("%d", &n);
  68.     if (n <= 20) {
  69.         printf("ВВЕДИТЕ ДАННЫЕ БОЛЬНЫХ\n");
  70.         for (int i = 0; i < n; ++i) {
  71.             printf("ФИО:\n");
  72.             struct patient tmp;
  73.             scanf("%s%s%s", tmp.person.name, tmp.person.surname, tmp.person.patronymic);
  74.             printf("ДАТА (День, Месяц, Год):\n");
  75.             scanf("%d%d%d", &tmp.date.day, &tmp.date.month, &tmp.date.year);
  76.             printf("ДИАГНОЗ:\n");
  77.             getchar();
  78.             gets(tmp.diagnosis);
  79.             vec[i] = tmp;
  80.         }
  81.         for (int i = 0; i < n; ++i) {
  82.             printf("Пациент номер %d:\n", i + 1);
  83.             PrintPatient(&vec[i]);
  84.         }
  85.         func(n);
  86.     }
  87.     else {
  88.         printf("Превышена максимальная длина массива\n");
  89.     }
  90. #elif key == 2
  91.     printf("key = %d\n", key);
  92.     int n = 10;
  93.     for (int i = 0; i < n; ++i) {
  94.         vec[i] = testing_vec[i];
  95.         for (int i = 0; i < n; ++i) {
  96.             printf("Пациент номер %d:\n", i + 1);
  97.             PrintPatient(&vec[i]);
  98.         }
  99.     }
  100.     func(n);
  101. #else
  102.     printf("Указано неверное значение key\n");
  103. #endif
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement