我正在尝试在填充了X的C中初始化一个2D数组,除了索引(2,2),它将填充字母' C'。但是,当我运行下面的代码时,我不仅得到了一个' C'在(2,2),但由于某种原因,我最终得到了一个' C'在指数(1,9)(见下面的输出)。
我尝试更改宽度和高度值,并意识到它有时会起作用。例如,当我使高度= 10和宽度= 10时,我得到的正确输出只有一个C'在适当的位置。
我对C编程很陌生,并且不知道它为什么有时会产生正确的输出。任何帮助将不胜感激!
int width = 10;
int height = 7;
int x = 2;
int y =2;
int limit = 3;
//initialising 2D array
char board[width][height];
for(int i = 0; i < height; i++){//rows
for (int j = 0; j < width; j++){//cols
if(i == y && j == x){
board[y][x] = 'C';
}
else{
board[i][j] = 'X';
}
}
}
//printing 2D array
for(int i = 0; i < height; i++){//rows
for (int j = 0; j < width; j++){//cols
printf("%c ", board[i][j]);
}
printf("\n");
}
答案 0 :(得分:2)
你的数组声明错误了。 而不是
char board[width][height];
你需要
char board[height][width];
/* Rows Cols */