Advertisement
ULK

Структуры и функции (Вариант 9)

ULK
Mar 14th, 2023
694
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.74 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. const int n = 6;  //Число элементов массива
  5.  
  6. struct Train { //Структура
  7.     char pn[21];
  8.     unsigned int num;
  9.     char time[6];
  10. };
  11.  
  12. void Copy(Train& pest, Train bust)  //Вспомогательная функция для сортировки (копирование данных из src в dest)
  13. {
  14.     strcpy_s(pest.pn, bust.pn);
  15.     strcpy_s(pest.time, bust.time);
  16.     pest.num = bust.num;
  17. }
  18.  
  19. int main(void)
  20. {
  21.     Train a[n];
  22.     int i = 0;
  23.     for (i = 0; i < n; i++) { //Ввод данных
  24.         cout << "Enter the destination: ";
  25.         cin >> a[i].pn;
  26.         cout << "Enter the train's number: ";
  27.         cin >> a[i].num;
  28.         cout << "Enter the departure time : ";
  29.         cin >> a[i].time;
  30.     }
  31.  
  32.     Train buf; int k; //Сортировка методом пузырька (время должно быть введено в одном формате)
  33.     for (i = 0; i < n - 1; i++)
  34.         for (k = 0; k < n - 1; k++)
  35.             if (strcmp(a[k].time, a[k + 1].time) > 0) {
  36.                 Copy(buf, a[k]);
  37.                 Copy(a[k], a[k + 1]);
  38.                 Copy(a[k + 1], buf);
  39.             }
  40.  
  41.     char pp[21]; //Поиск поезда
  42.     cout << "Enter the destination: ";
  43.     cin >> pp;
  44.     bool f = false; //Флаг (найден ли хоть один)
  45.     for (i = 0; i < n; i++)
  46.         if (strcmp(a[i].pn, pp) == 0) { //Вывод информации при совпадениях
  47.             cout << "Train №" << a[i].num << ' ' << a[i].time << ' ';
  48.             f = true;
  49.         }
  50.     if (!f) cout << "No train"; //Сообщение при отсутствии необходимых данных
  51.  
  52.     return 0;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement