1
我想初始化一个C数组的二维数组,用C填充,除了索引(2,2)将填充字母'C'。然而,当我运行下面的代码时,不仅在(2,2)处得到'C',而且由于某种原因,我最终也得到了索引(1,9)处的'C'(见下面的输出)。二维数组不打印正确的输出
我试着改变宽度和高度值,并意识到它有时会起作用。例如,当我使height = 10和width = 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");
}
因为它是char'的'一个数组,你可能也只是做:'memset的(板, 'X',宽*高); board [y] [x] ='C';' – Dmitri
你只想在'C'的几个位置上,而其余的是'X'?如果是这样,_memset()_可能会更好。使用它将所有值设置为'X',然后使用条件将数组中的特定值设置为其他值。 – Ravin
将来,总是复制粘贴输出_as text_。不要使用图片来显示文字。 –