C 2D阵列未打印正确的输出
我正在尝试初始化一个2D数组,除了索引(2,2)将用字母“C”填充外,该数组用C填充X。然而,当我运行下面的代码时,我不仅在(2,2)处得到了一个“C”,而且出于某种原因,我最终在索引(1,9)处得到了一个“C”(参见下面的输出) 我尝试更改宽度和高度值,并意识到它有时会起作用。例如,当我使height=10,width=10时,我得到了正确的输出,在其正确的插槽中只有一个“C” 我对C编程相当陌生,不知道为什么它有时会产生正确的输出。任何帮助都将不胜感激C 2D阵列未打印正确的输出,c,arrays,matrix,multidimensional-array,C,Arrays,Matrix,Multidimensional Array,我正在尝试初始化一个2D数组,除了索引(2,2)将用字母“C”填充外,该数组用C填充X。然而,当我运行下面的代码时,我不仅在(2,2)处得到了一个“C”,而且出于某种原因,我最终在索引(1,9)处得到了一个“C”(参见下面的输出) 我尝试更改宽度和高度值,并意识到它有时会起作用。例如,当我使height=10,width=10时,我得到了正确的输出,在其正确的插槽中只有一个“C” 我对C编程相当陌生,不知道为什么它有时会产生正确的输出。任何帮助都将不胜感激 int width = 10; int
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");
}
int-width=10;
整数高度=7;
int x=2;
int y=2;
整数极限=3;
//初始化二维数组
炭板[宽度][高度];
对于(int i=0;i
数组声明有误。 而不是
char board[width][height];
你需要
char board[height][width];
/* Rows Cols */
因为它是一个字符数组,你可以这样做:
memset(board,'X',width*height);板[y][x]=“C”代码>您是否只希望在少数位置使用“C”,而其余位置使用“X”?如果是这样,memset()可能更好。使用它将所有值设置为“X”,然后使用条件将数组中的特定值设置为其他值。以后,始终将输出复制粘贴为文本。不要使用图像显示文本。感谢专业提示。我会试试:)啊,干杯,伙计。我知道我忽略了一些简单的事情。谢谢:)