我试图用3行打印出9个元素的数组。
我想用3行打印出来,例如3行。
xxx
xxx
xxx
但我不确定如何解决这个问题。
void ticTacToeBoard ()
{
for (int i = 0; i < 9; i++)
{
cout << ticTacBoard[i] << " ";
}
}
答案 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 << ' ';
}