#c
Вопрос:
Застрял на этом в течение последнего часа. Я попытался разобраться в проблеме с этим фрагментом кода:
for (i = 0; i < 5; i ) {
for (j = 0; j < 7; j ) {
if(chosenSeat = seatz[5][7]) {
cout << "Sorry, that seat is already taken. Please choose another." << endl;
}
}
}
В этом коде «cout» продолжал зацикливаться несколько раз, когда я хотел показать его только один раз. Каким-то образом, когда я попытался изменить порядок кода, чтобы попытаться исправить его, мне удалось испортить его еще больше. Теперь весь блок кода показывает свой вывод! 🙁
Какую ошибку я здесь совершил? Я застрял с этой проблемой в течение последних двух часов.
cout << endl;
cout << "Please enter your seat number to reserve: ";
cin >> chosenSeat;
for (i = 0; i < 5; i ) {
for (j = 0; j < 7; j ) {
if(chosenSeat = seatz[5][7]) {
cout << "Sorry, that seat is already taken. Please choose another." << endl;
}
}
}
for (i = 0; i < 5; i ) {
for (j = 0; j < 7; j ) {
if (chosenSeat == seatNum [i][j]) {
seatz [i][j] = seatNum [i][j];
seatNum [i][j] = 0;
cout << "Your seat has successfully been reserved." << endl;
}
}
}
if(chosenSeat == 0 || chosenSeat > 35)
cout << "Invalid seat number.";
while (cin.fail()){
cin.clear();
cin.ignore(numeric_limits <streamsize> :: max(), 'n');
cout << "Invalid seat number.";
}
Комментарии:
1. Вы имели в виду
seatz[i][j]
вместоseatz[5][7]
этого ? В противном случае циклы не нужны2.
=
!===
; первое-это присвоение, второе-сравнение.3. Кроме того, вы имели в виду
if (chosenSeat == seatz[...])
(==
для сравнения,=
для задания)4.
chosenSeat == seatz[i][j]
вместоchosenSeat = seatz[5][7]
этого ? (повысьте уровень предупреждения, чтобы=
вместо этого поймать проблему==
).5. int seatNum [5][7] = {{1, 2, 3, 4, 5, 6, 7}, {8, 9, 10, 11, 12, 13, 14}, {15, 16, 17, 18, 19, 20, 21}, {22, 23, 24, 25, 26, 27, 28}, {29, 30, 31, 32, 33, 34, 35},}; int chosenSeat, i, j, y; int seatz[5][7]; @kuro до кодов, показанных выше, я объявил следующие значения.
Ответ №1:
Решение(ы):
Я понимаю, что вы пытаетесь сделать, и, учитывая, что код мало воспроизводим ( учитывая, что опубликованное нарушено), я дам вам несколько советов / альтернативных методов.
- При проверке матрицы вы используете неверный операнд
=
«против==
«. - При проверке правильности мест попробуйте создать класс, посвященный хранению переменных для мест.
Пример:
class CSeats
{
public:
int m_iSeatIndex; // An example of where you can store / save seat data.
};
Существует множество способов, которыми вы могли бы исправить код, но то, что предоставляется, слишком минимально и дает мало информации о сути проблемы.