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_。不要使用圖片來顯示文字。 –