Задание:Структура с именем TRAIN поля: -название пункта назначения; -номер поезда; -время отправления Способ обработки – вывод на дисплей результата сравнения: верно ли ,что названия пунктов назначения совпадают у двух поездов Как можно изменить код?
#include <iostream>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
struct TRAIN {
char *name;
int number;
float time;
};
void inTrain(TRAIN *train) {
cout <<"Введите данные: "<<endl;
cout <<"Пункт назначения: "<<endl;
train->name = new char[25];
cin >>train->name;
cout <<"Номер поезда: "; cin >>train->number;
cout <<"Время отправлени: "; cin >>train->time;
}
void outTrain(TRAIN *train) {
cout <<"Пункт назначения: "<<train->name<<endl<<"Номер поезда: "<<train->number<<endl<<"Время отправления: "<<train->time<<endl;
}
int main() {
TRAIN tr1,tr2,*train1, *train2;
train1 = &tr1;
train2 = &tr2;
int num;
while (1) {
cout << "Выберите действие: " <<endl<< "1 - Ввод данный" <<endl<< "2 - Вывод данных" <<endl<< "3 - Обработка" <<endl<< "4 - Выход" << endl;
cin >> num;
switch(num) {
case 1: inTrain(train1);
inTrain(train2);
break;
case 2: outTrain(train1);
outTrain(train2);
break;
case 3: if (tr1.name == tr2.name) cout <<"True"<<endl;
else cout<<"False"<<endl;
break;
case 4: return 0;
}
}
return 0;
}
tr1.name == tr2.name
Ну не сравнивают так строки... Вы проверяете, не один ли и тот же адрес у name в tr1 и tr2...
if (strcmp(tr1.name,tr2.name) == 0) { ... }
Вот это - сравнение строк, а не адресов.
Или сравнивать так
case 3: if (strcmp(tr1.name,tr2.name)==0)
или, что лучше, заменить тип на string.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости