文字 'C'で塗りつぶされるインデックス(2,2)を除いて、Xで塗りつぶされたCで2D配列を初期化しようとしています。しかし、以下のコードを実行すると、(2,2)に 'C'が表示されるだけでなく、何らかの理由でインデックスに 'C'が表示されます(1,9) )。2D配列が正しい出力を出力しない
幅と高さの値を変更しようとしましたが、時々動作することに気付きました。たとえば、高さ= 10、幅= 10とすると、適切なスロットに「C」が1つのみ表示され、正しい出力が得られます。
私は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");
}
を必要とする:'のmemset(ボード、 'X'、幅*高さ)。ボード[y] [x] = 'C'; ' – Dmitri
残りの部分が 'X'である間に、いくつかの位置で 'C'もしそうなら、_memset()_が良いでしょう。それを使用してすべての値を 'X'に設定し、条件を使用して配列内の特定の値を別の値に設定します。 – Ravin
将来、常に出力_as text_をコピーしてコピーしてください。テキストを表示するためにイメージを使用しないでください。 –