1

嗨,我已经自学 C++ 一段时间了,并且一直在数组部分。我还不太了解数组(以及嵌套的 for 循环),非常感谢一些帮助

1) 如何

const int ROWS = 5;
const int COLUMNS = 3;
for (int i = 0; i < ROWS; ++i)

{
    for (int j = 0; j < COLUMNS; ++j)
            cout << i << "," << j << " ";
    cout << endl;
}

展示

0,0 0,1 0,2
1,0 1,1 1,2
2,0 2,1 2,2
3,0 3,1 3,2
4,0 4,1 4,2

浏览代码时,在我看来它应该看起来更像

0,0 0,1 0,2 1,0 1,1 1,2 2,0 2,1 2,2 3,0 3,1 3,2 4,0 4,1 4,2

为什么在3组2后自动创建一个新行?

2)我不知道迭代器是什么。我已经在矢量文件名中使用了它们,但我仍然不知道它们是什么以及它们如何更改数据

3)这些'[]'在这段代码中做了什么?

const int ROWS = 3;
    const int COLUMNS = 3;
    char board[ROWS][COLUMNS] = { {'O', 'X', 'O'},
                                   {' ', 'X', 'X'},
                                     {'X', 'O', 'O'} };
    cout << "Here's the Tic-Tac-Toe board:\n";
    for (int i = 0; i < ROWS; ++i)
    {
        for (int j = 0; j < COLUMNS; ++j)
            cout << board[i][j];
        cout << endl;
    }

更具体地说,什么是

[ROWS][COLUMNS] 

以及为什么它们属于那些盒子。以及如何

cout << board[i][j]

输出井字棋盘。

我意识到这是一个但很多要求,但我不知道我现在在书中编程什么,非常感谢你的帮助

4

1 回答 1

0

1) 行“cout << endl;” 正在创建换行符。前面的行打印两个逗号分隔值,i(这是第一个 for 循环的迭代)和 j,第二个 for 循环的迭代。第二个循环递增 j 直到 j = COLUMNS (3)。所以你得到了这两个值的 3 个循环,然后是一个新行。然后由于第一个循环而重复此操作,递增 i 直到它等于 ROWS (5)。这就是为什么你得到 5 行。

2)本例中的迭代器是 i 和 j。它们是 int 变量,用于测量循环中的位置,因为每次循环运行时它们都会递增。

3) [] 声明一个数组。例如

int myArray[3] 

创建一个具有三个整数空间的数组。

char board[ROWS][COLUMNS]

正在创建一个多维数组。因此,您有一个一维长度为 ROWS 的数组,以及另一维长度为 COLUMNS 的数组。

然后,在你的循环中

cout << board[i][j]

打印出数组第一维中位置 i 处和第二维中位置 j 处的值。

于 2013-05-27T00:11:50.807 回答