Описать структуру с именем Train - C (СИ) (151371)
Формулировка задачи:
Описать структуру с именем TRAIN, содержащую следующие поля:
название пункта назначения;
номер поезда;
время отправления.
Написать программу, выполняющую следующие действия:
ввод с клавиатуры данных в массив, состоящий из восьми элементов типа TRAIN (записи должны быть упорядочены по номерам поездов);
вывод на экран информации о поезде, номер которого введен с клавиатуры (если таких поездов нет, вывести соответствующее сообщение).
Вот код программы но у меня много чего не работает прошу исправить ошибки
Листинг программы
- #include <stdio.h>
- #include <locale.h>
- #include <string.h>
- #include <stdlib.h>
- int main()
- {
- struct TRAIN
- {
- char title[31];
- char nomber[6];
- char time[10];
- };
- struct TRAIN mas[3];
- for(int i=0; i<3; i++)
- {
- printf("Poezd nomer %i\n",i+1);
- printf("Vvedite punkt naznacheniya: ");
- gets(mas[i].title);
- printf("nomer poezda: ");
- gets(mas[i].nomber);
- printf("Vremya otpravki: ");
- gets(mas[i].time);
- }
- for(int i=0; i<2; i++)
- for(int j=0; j<2; j++)
- if(mas[j].nomber>mas[j+1].nomber)
- {
- struct TRAIN tmp=mas[j];
- mas[j]=mas[j+1];
- mas[j+1]=tmp;
- }
- printf("otsortirovanaya baza poezdov \n");
- for(int i=0; i<3; i++)
- printf("%30s %10s %30s\n", mas[i].title, mas[i].nomber, mas[i].time);
- char x;
- printf("nimer poezda dlya poiska: ");
- scanf("%s",&x);
- printf("rezylt:\n");
- int k=0;
- for(int i=0; i<3; i++)
- if(mas[i].nomber==x)
- {
- printf("%8s %8s %8s\n", mas[i].title, mas[i].nomber, mas[i].time);
- printf("\n");
- k=1;
- }
- if(k==0)
- printf("poezd ne nayden\n");
- return 0;
- }
Решение задачи: «Описать структуру с именем Train»
textual
Листинг программы
- #include <stdio.h>
- #include <string.h>
- typedef struct
- {
- char name[80];
- int num;
- int time[2];
- } TRAIN;
- int main(void)
- {
- const int N = 3;
- TRAIN notes[N];
- // Ввод данных структуры
- for(int i = 0; i < N; i++)
- {
- printf("Input nazvanie punkta =>");
- gets(notes[i].name);
- printf("Input nomer poezda =>");
- scanf("%d",¬es[i].num);
- printf("Input vremy otpravleniy h:m =>");
- scanf("%d:%d", ¬es[i].time[0], ¬es[i].time[1]);
- fflush(stdin);
- }
- for(int i=0; i<N; i++)
- for(int j=0; i<N; j++)
- {
- if(strcmp(notes[i].name,notes[j].name) < 0)
- {
- TRAIN temp = notes[i];
- notes[i] = notes[j];
- notes[j] = temp;
- }
- }
- for(int i = 0; i < N; i++)
- printf("%s %d %d:%d\n", notes[i].name, notes[i].num, notes[i].time[0], notes[i].time[1]);
- int num = 0;
- printf("Input nomer poezda =>");
- scanf("%d",&num);
- int isNum = 0;
- for(int i = 0; i < N; i++)
- if(notes[i].num == num)
- {
- isNum = 1;
- printf("%s %d:%d\n", notes[i].name, notes[i].time[0], notes[i].time[1]);
- break;
- }
- if(isNum==0)
- printf("Ne naideno");
- return 0;
- }
Объяснение кода листинга программы
- Тип программы: Многопоточный (предположительно)
- Название структуры: Train
- Переменные структуры:
- name (строка, 80 символов)
- num (целое число)
- time (массив из 2 целых чисел)
- Ввод данных структуры:
- Ввод названия пункта
- Ввод номера поезда
- Ввод времени отправления (часы:минуты)
- Сортировка массива структур:
- Сравнение названий пунктов
- Перестановка элементов массива
- Вывод данных структуры:
- Вывод названия пункта
- Вывод номера поезда
- Вывод времени отправления
- Поиск номера поезда:
- Ввод номера поезда
- Сравнение номеров поездов
- Вывод найденного номера поезда (если есть)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д