C++ 如何使用用户输入正确修改二维数组中的字符数组元素?专门用于电影院座位
我一直在设计一个座位表,特别是模仿电影院的座位,使用2D字符数组,有行有列。我用字符初始化数组,表示座位是空的。但是,我想让用户能够选择一行和一列来选择他们想要的座位,并将数组中的元素替换为“*”以表示它已被占用。问题是我做了一个用户输入,所以它应该修改和更新座位表和有人坐的座位,但相反,它显示的座位,好像从来没有人坐过一样C++ 如何使用用户输入正确修改二维数组中的字符数组元素?专门用于电影院座位,c++,multidimensional-array,C++,Multidimensional Array,我一直在设计一个座位表,特别是模仿电影院的座位,使用2D字符数组,有行有列。我用字符初始化数组,表示座位是空的。但是,我想让用户能够选择一行和一列来选择他们想要的座位,并将数组中的元素替换为“*”以表示它已被占用。问题是我做了一个用户输入,所以它应该修改和更新座位表和有人坐的座位,但相反,它显示的座位,好像从来没有人坐过一样 #include <iostream> #include <iomanip> //Global variable. char seatingCha
#include <iostream>
#include <iomanip>
//Global variable.
char seatingChart[15][30];
//Function prototype.
void theaterDisplay();
using namespace std;
int main()
{
int choice;
int row;
int col;
//initializing all elements in array with '#'.
for(int i = 0; i < 15; i++)
{
for(int j = 0; j < 30; j++)
seatingChart[i][j] = '#';
}
//Loop to let user input the seat they want.
while(true)
{
//Calling function to display seats so user can decide.
theaterDisplay();
cout << "Enter row: ";
cin >> row;
cout << "Enter col: ";
cin >> col;
if(seatingChart[row-1][col-1] == '*')
{
cout << "Seat is taken.\n";
}
else
{
seatingChart[row-1][col-1] == '*';
}
}
}
//This function is simply just to display the seats available.
void theaterDisplay()
{
cout << endl << setw(25) << "Seats\n";
cout << "\t123456789012345678901234567890\n";
for(int i = 0; i < 15; i++)
{
cout << "row " << (i + 1) << "\t";
for(int j = 0; j < 30; j++)
{
cout << seatingChart[i][j];
}
cout << endl;
}
}
我很感激你们中的任何一位能够找出我做错了什么,因为我觉得它应该可以正常工作,但由于某种原因,当用户输入行和列时,它不会覆盖数组中的“*”。请随意粘贴并运行它。希望我的代码是直截了当的,如果你需要一些澄清让我知道。提前谢谢
seatingChart[row-1][col-1] == '*';
应该读
seatingChart[row-1][col-1] = '*';
我想指出,许多剧院没有简单的网格式座位布局。很多都是弯曲的,而且行的大小也不一样。我觉得自己很傻,因为我没有意识到我在不该做的事情上滥用了操作符,并发布了这篇文章。非常感谢你,你不知道我费了多大劲才弄明白。干杯