我试图通过在函数的参数中传递变量来创建二维数组。您能否查看我的代码是否有任何错误,谢谢。
#include <stdio.h>
#include <stdlib.h>
void print(char *board)
{
int i = 0, j = 0;
printf("Board :\n");
for(i; i < 3 ;i++)
{
for(j; j < 3;j++)
{
board[i][j] = 'X';
printf("%c", board[i][j]);
}
}
printf("\n");
}
int main()
{
char board[3][3];
print(&board[0][0]);
return 0;
}
答案 0 :(得分:1)
您没有在内部循环中初始化j
,因此它仅针对i=0
运行,
之后j
变为3
因为您没有在循环中初始化它,那么条件j < 3
将始终为 false 以获得i
的更多值,因此内循环永远不会再执行。
如果你想在每一行之后打印新行,那么你的printf("\n");
语句应该在第一个for循环中(参见代码)。
更改您的代码:
#include <stdio.h>
#include <stdlib.h>
void print(char board[][3])
{
int i,j;
printf("Board :\n");
for(i=0; i < 3 ;i++)
{
for(j=0; j < 3;j++) // initialize j to 0
{
board[i][j] = 'X';
printf("%c", board[i][j]);
}
printf("\n"); //new line after each row
}
}
int main()
{
char board[3][3];
print(board);
return 0;
}