打印阵列3行

时间:2011-11-07 21:08:15

标签: c++ arrays for-loop

我试图用3行打印出9个元素的数组。

我想用3行打印出来,例如3行。

xxx
xxx
xxx

但我不确定如何解决这个问题。

void ticTacToeBoard ()
{
    for (int i = 0; i < 9; i++)
    {
        cout << ticTacBoard[i] << " ";
    }
}

4 个答案:

答案 0 :(得分:4)

我喜欢用我的循环详细说明,所以试试这个:

void ticTacToeBoard ()
{
    for (int y = 0; y < 3; y++)
    {
        for (int x = 0; i < 3; x++)
        {
            cout << ticTacBoard[3 * y + x] << " ";
        }

        cout << endl;
    }
}

基本上,我在行(y)中迭代您的电路板,然后在列(x)中迭代,允许我打印每个单元格控制流程。

我只是在每一行之后打印一个换行符(endl)。

答案 1 :(得分:1)

将ticTacBoard更改为二维数组并执行

 using namespace std;


int main()
{

    int ticTacBoard[3][3];

    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            cout << ticTacBoard[i][j] << " ";
        }

        cout << endl;
    }


    return 0;
}

二维数组将更容易理解。

答案 2 :(得分:0)

使用模运算符检测每第三次迭代。然后打印换行符。

void ticTacToeBoard ()
{
    for (int i = 0; i < 9; i++)
    {
        cout << ticTacBoard[i] << " ";

        if((i + 1) % 3 == 0) {
            cout << endl;
        }
    }
}

答案 3 :(得分:0)

你可以通过这个简单的公式将一维数组(比方说i)中的偏移量转换成二维偏移量:

row = i div width
column = i mod width

所以,基本上:

for(int i = 0; i < 9; i++) {
    cout << ticTacBoard[i];

    if(i % 3 == 2)
        cout << endl;
    else
        cout << ' ';
}