Описать структуру с именем 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 целых чисел)
- Ввод данных структуры:
- Ввод названия пункта
- Ввод номера поезда
- Ввод времени отправления (часы:минуты)
- Сортировка массива структур:
- Сравнение названий пунктов
- Перестановка элементов массива
- Вывод данных структуры:
- Вывод названия пункта
- Вывод номера поезда
- Вывод времени отправления
- Поиск номера поезда:
- Ввод номера поезда
- Сравнение номеров поездов
- Вывод найденного номера поезда (если есть)