gpt4 book ai didi

c++ - 在二维数组中按价格搜索?

转载 作者:行者123 更新时间:2023-11-28 06:58:25 25 4
gpt4 key购买 nike

我有一个程序可以构建剧院的二维阵列。用户可以按位置选择座位,货币金额变为 0 以指示该座位已被占用。选择座位的另一种方法是按价格选择。所以用户输入一个价格,for 循环遍历数组并找到该价格的第一个实例并将其替换为 0,然后停止。或者至少那是我试图做的。实际上,它用 0 替换了所有这些值。我尝试使用 while 循环在满足条件后将其关闭,但这没有用。这是我的(相关)代码。

while (flag == true)
{
cout << "\n";
cout << "You may select tickets by seat or by price. Enter 1 to select by price, or 2 to select a seat. Enter 3 if you'd like to quit." << endl;
cin >> userSelection;

if (userSelection == 1)
{
cout << "What price would you like to search for? " << endl;
cin >> priceSelection;
while (searchFlag == true)
{
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 10; j++)
{
if (Theater [i][j] == priceSelection)
{
Theater [i][j] = 0;
searchFlag = false;
}
}
}

for (int i = 0; i < 9; i++) // This for loop is going to output our array so the user can see pricing.
{
for (int j = 0; j < 10; j++)
{
cout << Theater [i][j] << " ";
}
cout << "\n";
}
}

}

我不确定真正需要更改什么以便在找到并更改第一个价格后它会停止。此外,如果有必要,我不介意复制/粘贴我的其余代码。

最佳答案

只是对 future 的一些建议,

不要硬编码你的循环终止条件,即 (i < 9) .具有阵列的当前长度或座位数。这样你就可以添加更多,这仍然有效。

此外,即使您在 if 语句中将搜索标志设置为 false,您仍然会继续执行每个 for 循环。因此,您将每次都遍历每个座位。如果当前座位的价格与用户输入的价格不匹配,您将进入无限循环。尝试将内部 for 循环更改为

for (int j = 0; j < someCurrentLengthOfArray && searchFlag; j++)

这样您将检查价格是否匹配以及您是否指向数组的未指定末端。

正如其中一条评论中提到的,为什么这是一个二维数组?

关于c++ - 在二维数组中按价格搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22869541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com