[英]C++ : Loop Array
过去一个小时一直坚持这个。 我已经尝试找出这段代码的问题:
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.";
}
我了解您正在尝试做什么,并且考虑到几乎没有可重复的代码(考虑到发布的内容已损坏),我将提供一些建议/替代方法。
在您的矩阵检查中,您使用了错误的=
操作数,而不是==
。
检查有效座位时,尝试创建一个专用于存储座位变量的类。
例子:
class CSeats
{
public:
int m_iSeatIndex; // An example of where you can store / save seat data.
};
有多种方法可以修复代码,但提供的方法太少,并且对核心问题的洞察力很低。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.