0

2D 配列に格納された 12x12 ボードを「.」で埋めようとしています。キャラクター。

void initializeBoard(char board[BOARD_SIZE][BOARD_SIZE]) {
   int i, j;
   for (i=0; i<BOARD_SIZE; i++) {
      for (j=0; j<BOARD_SIZE; j++) {
         board[i][j] = '.';
      }
   }
}

そして印刷します:

void printBoard(char board[BOARD_SIZE][BOARD_SIZE]) {

   int i,j;

   for (i=0; i<BOARD_SIZE; i++) {
      for (j=0; j<BOARD_SIZE; j++) {
         printf(" %c", board[i][j]);
      }
      printf("\n");
   }
   printf("\n");

}

空のグリッドを出力します。ボードに何も格納されていないように見えます[][]。助けてください?

4

1 に答える 1

0

少なくともあなたが示したコードスニペット内では、すべてうまくいっているようです。次のプログラムを実行すると:

#include <stdio.h>

#define BOARD_SIZE 12

void initializeBoard(char board[BOARD_SIZE][BOARD_SIZE]);
void printBoard(char board[BOARD_SIZE][BOARD_SIZE]);

int main() {
    char board[BOARD_SIZE][BOARD_SIZE];
    initializeBoard(board);
    printBoard(board);
    return 0;
}

void initializeBoard(char board[BOARD_SIZE][BOARD_SIZE]) {
    int i, j;
    for (i=0; i<BOARD_SIZE; i++) {
        for (j=0; j<BOARD_SIZE; j++) {
            board[i][j] = '.';
        }
    }
}

void printBoard(char board[BOARD_SIZE][BOARD_SIZE]) {
    int i,j;
    for (i=0; i<BOARD_SIZE; i++) {
        for (j=0; j<BOARD_SIZE; j++) {
            printf(" %c", board[i][j]);
        }
        printf("\n");
    }
    printf("\n");
}

次の出力が得られます。

$ ./a.exe
 . . . . . . . . . . . .
 . . . . . . . . . . . .
 . . . . . . . . . . . .
 . . . . . . . . . . . .
 . . . . . . . . . . . .
 . . . . . . . . . . . .
 . . . . . . . . . . . .
 . . . . . . . . . . . .
 . . . . . . . . . . . .
 . . . . . . . . . . . .
 . . . . . . . . . . . .
 . . . . . . . . . . . .

どういうわけか/どこかで2番目のボードを宣言し、それをprintBoard()関数に渡す必要があります。もっとコードを見せてもらえますか?

于 2012-05-30T03:06:31.280 に答える