For loop 如何遍历多维数组

For loop 如何遍历多维数组,for-loop,multidimensional-array,For Loop,Multidimensional Array,所以我想打印一个tic-tac趾板,但我真的无法解决如何做到这一点而不会得到疯狂的结果 #include <iostream> int main() { const int ROWS = 3; const int COLUMNS = 3; char board[ROWS][COLUMNS] = { {'X', 'O', 'X'}, {' ', 'O', 'O'}, {'X', 'X', 'O'} }; for

所以我想打印一个tic-tac趾板,但我真的无法解决如何做到这一点而不会得到疯狂的结果

#include <iostream>

int main()
{
    const int ROWS = 3;
    const int COLUMNS = 3;

    char board[ROWS][COLUMNS] =
     { {'X', 'O', 'X'},
       {' ', 'O', 'O'},
       {'X', 'X', 'O'} };

    for (int i = 0; i < COLUMNS; i++)
       {
        for (int j = 0; j < ROWS; j++)
        {
            std::cout << board[0][j];
        }

        std::cout << "\n";
       }

}

您一次又一次只打印第一行,即std::cout似乎您使用了错误的第一个索引,0而不是i!因此,更换您的线路

std::cout << board[0][j];

而且效果很好

2003年,我写了一篇关于博弈论的毕业论文,其中最重要的一个例子是tic-tac-toe游戏,我用Visual Basic 97为电脑播放器实现了动画、音频和非丢失策略。你也可以看到我的家庭视频,关于用鬼魂播放器玩井字游戏:

打印输出从不迭代电路板的行。另外,您已经混合了行和列,让外部循环第一个循环在行上迭代,内部循环在列上迭代

改变

for (int i = 0; i < COLUMNS; i++) {
  for (int j = 0; j < ROWS; j++) {
    std::cout << board[0][j];
  }
  std::cout << "\n";
}


现在一切都有意义了,谢谢你。在循环第一行的整个内部循环中,i显然是零。我认为很难弄清楚是什么控制了元素,是什么控制了“行”,这就是一直困扰我的原因!
for (int i = 0; i < COLUMNS; i++) {
  for (int j = 0; j < ROWS; j++) {
    std::cout << board[0][j];
  }
  std::cout << "\n";
}
for (int i = 0; i < ROWS; i++) {
  for (int j = 0; j < COLUMNS; j++) {
    std::cout << board[i][j];
  }
  std::cout << "\n";
}