В
Все
У
Українська література
Г
Геометрия
Д
Другие предметы
Э
Экономика
Г
География
О
ОБЖ
М
Математика
М
МХК
Х
Химия
Қ
Қазақ тiлi
Л
Литература
У
Українська мова
О
Обществознание
Ф
Физика
А
Английский язык
А
Алгебра
И
История
Б
Беларуская мова
Б
Биология
М
Музыка
П
Право
И
Информатика
П
Психология
В
Видео-ответы
Н
Немецкий язык
Ф
Французский язык
О
Окружающий мир
Р
Русский язык
мико141
мико141
01.03.2021 05:57 •  Информатика

Поясните код С++
int main()
{
train* arrayOfTrain[5];
for (int i = 0; i < 5; i++)
{
string punkt;
int trainNumber;
Time startTime;
cin >> punkt;
cin >> trainNumber;
cin >> startTime;
arrayOfTrain[i] = new train(punkt, trainNumber, startTime);
}

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;
}

Ответ:
умняшка220
умняшка220
13.10.2020 03:02

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;

}

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?