繁体   English   中英

C++:循环数组

[英]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.";
        }

解决方案:

我了解您正在尝试做什么,并且考虑到几乎没有可重复的代码(考虑到发布的内容已损坏),我将提供一些建议/替代方法。

  1. 在您的矩阵检查中,您使用了错误的=操作数,而不是==

  2. 检查有效座位时,尝试创建一个专用于存储座位变量的类。

例子:

class CSeats
{
    public:  
    int m_iSeatIndex; // An example of where you can store / save seat data.
};

有多种方法可以修复代码,但提供的方法太少,并且对核心问题的洞察力很低。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM