gpt4 book ai didi

c++ - 清除二维数组中的值

转载 作者:行者123 更新时间:2023-11-28 03:22:04 26 4
gpt4 key购买 nike

我一直在为一个 naughts and crosses 程序做一些编程,并且该板是一个二维数组。如果用户想要重播,我一直试图让程序重复,但是我注意到重复时所有值都保留在数组中。所以我想知道是否有办法清除数组中的所有值。

我确实在论坛上尝试了一些以前的问题,但是我发现的一些解决方案似乎没有用。

如果有人想看代码,只需评论,我会在此处添加,我只是不确定是否有必要。

如有任何帮助,我们将不胜感激。

    const int Rows = 4;
const int Columns = 4;
char Board[Rows][Columns] = { {' ', ' ', ' ', ' ' },
{' ', '_', '_', '_' },
{' ', '_', '_', '_' },
{' ', '_', '_', '_' } };


for (int i = 0; i < Rows; ++i)
{
for (int j = 0; j < Columns; ++j)
cout << Board [i][j];
cout << endl;
}

cout << endl << endl;



int row;
int column;


do
{
cout << "Please enter the value of the row you would like to take ";
cin >> row;
}while (row != 0 && row != 1 && row != 2 && row != 3);


do
{
cout << "Please enter the value of the column you would like to take ";
cin >> column;
}while (column != 0 && column != 1 && column != 2 && column != 3);


Board [row][column] = Player1.GetNorX();

for (int i = 0; i < Rows; ++i)
{
for (int j = 0; j < Columns; ++j)
cout << Board [i][j];
cout << endl;
}

最佳答案

假设您想要将Board 重置为原始状态,您需要:

for (int i = 0; i < Rows; i++) {
for (int j = 0; j < Columns; j++) {
if (i == 0 || j == 0) {
Board[i][j] = ' ';
} else {
Board[i][j] = '_';
}
}
}

这将遍历数组的每个元素,如果列号或行号为 0,则用 ' ' 填充它,否则用 '_'.

如果您只关心右下角的 3x3 网格,那么您可以这样做:

for (int i = 1; i < 4; i++) {
for (int j = 1; j < 4; j++) {
Board[i][j] = '_';
}
}

但是我建议将 RowsColumns 声明为 3。如果您希望用户输入从 1 开始的行号和列号,只需在访问数组时将 {1, 2, 3} 转换为 {0, 1, 2}。

关于c++ - 清除二维数组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15138793/

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