Ответы на вопрос:
int main()
{
train* arrayOfTrain[5]; // создается массив указателей на объекты train
// в следующем цикле у пользователя запрашивается заполнение пяти объектов train
for (int i = 0; i < 5; i++)
{
string punkt;
int trainNumber;
Time startTime;
cin >> punkt; // ввод пункта
cin >> trainNumber; // ввод номера поезда
cin >> startTime; // ввод времени
// в следующей строке выделяется память под объект train, ему присваиваются введенные данные
arrayOfTrain[i] = new train(punkt, trainNumber, startTime);
}
// сортировка массива по длине названия пункта назначения
// ( функция strcmp сравнивает длины строк )
for (int i = 0; i < 5 - 1; i++)
for (int j = i + 1; j < 5; j++) {
if (strcmp(arrayOfTrain[i]->punkt.c_str(), arrayOfTrain[j]->punkt.c_str()) > 0)
{
swap(arrayOfTrain[i], arrayOfTrain[j]);
}
}
// сортировка элементов с одинаковой длиной названия пункта назначения по времени отправления
for (int i = 0; i < 5 - 1; i++)
for (int j = i + 1; j < 5; j++) {
if (strcmp(arrayOfTrain[i]->punkt.c_str(), arrayOfTrain[j]->punkt.c_str()) == 0)
{
if (arrayOfTrain[i]->startTime.m_hours > arrayOfTrain[j]->startTime.m_hours)
swap(arrayOfTrain[i], arrayOfTrain[j]);
if (arrayOfTrain[i]->startTime.m_hours == arrayOfTrain[j]->startTime.m_hours)
if (arrayOfTrain[i]->startTime.m_minutes > arrayOfTrain[j]->startTime.m_minutes)
swap(arrayOfTrain[i], arrayOfTrain[j]);
}
}
// вывод массива на экран
for (int i = 0; i < 5; i++)
{
cout << arrayOfTrain[i]->punkt << " " << arrayOfTrain[i]->trainNumber << " " << arrayOfTrain[i]->startTime << endl;
}
system("pause");
return 0;
}
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
Masяsя06.02.2020 12:00
-
TatyanaKras11.04.2022 18:56
-
Яркий201728.01.2020 12:41
-
dementy126.11.2021 08:50
-
Диа20042606.10.2020 02:41
-
Amin140227.07.2022 11:43
-
anastasiab20005.12.2020 18:05
-
Artyr201714.06.2020 12:10
-
Перуна14.05.2021 03:22
-
КурогаБич20.06.2023 23:28
![Caktus Image](/tpl/img/cactus.png)
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.