K
Kilin
Нужно написать прогу которая находит введенный маршрут,если есть такие несколько маршрутов,выводит маршрут с наименьшим время отправления.Сперва вводится количество маршрутов,а потом сами маршруты. При этом маршруты вводятся таким образом:
Первый - номер поезда [тип int ]
Второй - адрес назначения [тип char*]
Третий - время отправления [тип char*];
И на последную строку вводится название города.При выводе название маршрута должен выводит большими буквами.
Если нет введенного маршрута выводит "NO"
Вот примеры ввода:
4
01 Moscow 23:00
45 Piter 15:00
306 Ural 18:23
78 Piter 13:00
PITER
Вывод
78 PITER 13:00
Еще один пример;
2
01 MoScow 10:10
306 Ural 18:23
MoscoW
Вывод;
01 MOSCOW 10:10
Первый - номер поезда [тип int ]
Второй - адрес назначения [тип char*]
Третий - время отправления [тип char*];
И на последную строку вводится название города.При выводе название маршрута должен выводит большими буквами.
Если нет введенного маршрута выводит "NO"
Вот примеры ввода:
4
01 Moscow 23:00
45 Piter 15:00
306 Ural 18:23
78 Piter 13:00
PITER
Вывод
78 PITER 13:00
Еще один пример;
2
01 MoScow 10:10
306 Ural 18:23
MoscoW
Вывод;
01 MOSCOW 10:10
Если не трудно напишите код используя указатель,динамический массив и структуру
А вот код который я написал,выводится ошибка при вводе.А сравнение времени отправки не смог написать.
Код:
#include <iostream>
using namespace std;
char* a=new char[1000];
char* b=new char[1000];
char* c=new char[1000];
int* z=new int[1000];
int main(){
int n;
cin >> n;
for (int i=0;i<n;i++){
cin >>*(z+i)>> *(b+i) >> *(a+i);
}
cin>>*c;
for(int i=0;i<strlen(b);i++)
if(islower(b[i]))
b[i]=toupper(b[i]);
for(int i=0;i<strlen(c);i++)
if(islower(c[i]))
c[i]=toupper(c[i]);
if(strlen(c)==strlen(b))
for(int i=0;i<strlen(b);i++){
if(b[i]==c[i])
cout <<*(z+i)<< *(b+i) << *(a+i);
else
cout<<"NO";}
delete [] (c);
delete [] (z);
delete [] (a);
delete [] (b);
return 0;}