Eri*_*ans 1 c printf matrix multidimensional-array
int main() {
char gameArea[][8] = {
{'X','X','X','X','X','X','X','X'},
{'X','X','X','X','X','X','X','X'},
{'X','X','X','X','X','X','X','X'},
{'X','X','X','X','X','X','X','X'},
{'X','X','X','X','X','X','X','X'},
{'X','X','X','X','X','X','X','X'},
{'X','X','X','X','X','X','X','X'},
{'X','X','X','X','X','X','X','X'}};
int i = 0; int j = 0;
while (i<8) {
while (j<8) {
printf("%c",gameArea[i][j]);
j++;
}
i++;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
XXXXXXXX
Process returned 0 (0x0) execution time : 0.563 s
Press any key to continue.
Run Code Online (Sandbox Code Playgroud)
理论上,i它将贯穿列,并打印所有列,但事实并非如此.非常感谢你的帮助.
我想你想要一个for循环:
for (int i = 0; i < 8; ++i) {
for (int j = 0; j < 8; ++j) {
printf("%c", gameArea[i][j]);
}
printf("\n");
}
Run Code Online (Sandbox Code Playgroud)
这是你的循环的进展:
i = 0并且j = 0,打印X和增量j.i = 0并且j = 7,打印X和增量j.j = 8,stop j-loop和increment i.i = 1但j仍然8是因为我们无法执行j-loop,所以增量i.i = 7但j仍然8是因为我们无法执行j-loop,所以增量i.i = 8停止i循环.你想要做的是在j-loop 之后增加i你也想要重置j为0.除此之外,你想为下一行打印一个新行,否则你最终将连续64行X.
使用for循环:
for (/*initialization*/; /*condition*/; /*increment*/) {
/*loop body*/
}
Run Code Online (Sandbox Code Playgroud)
使用while循环执行此操作是一个捷径:
/*initialization*/
while(/*condition*/) {
/*loop body*/
/*increment*/
}
Run Code Online (Sandbox Code Playgroud)