最初の文字(' '
)と繰り返し文字列("--- "
)
最初の行と内容ライン、バーラインを繰り返します。
#include <stdio.h>
#define MARK "X O"
//reduce code
#define DRAW_H_BAR()\
do {\
putchar(' ');\
for(int i = 0; i < cols; ++i)\
printf("%s ", h_bar);\
puts("");\
}while(0)
void printBoard(int rows, int cols, int board[rows][cols]){
const char *h_bar = "---";
const char v_bar = '|';
DRAW_H_BAR();//first line
for(int j = 0; j < rows; ++j){
//contents line
putchar(v_bar);
for(int i = 0; i < cols; ++i)
printf(" %c %c", MARK[board[j][i]+1],v_bar);
puts("");
DRAW_H_BAR();//bar line
}
}
int main(void){
int board[8][8] = {
{1,0,1,0,1,0,1,0},
{0,1,0,1,0,1,0,1},
{1,0,1,0,1,0,1,0},
{0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0},
{0,-1,0,-1,0,-1,0,-1},
{-1,0,-1,0,-1,0,-1,0},
{0,-1,0,-1,0,-1,0,-1}
};
int rows = sizeof(board)/sizeof(*board);
int cols = sizeof(*board)/sizeof(**board);
printBoard(rows, cols, board);
}
私たちが表示したコードの問題は何ですか?そのプログラムの実際の出力は何ですか?どのようなアウトプットを期待しましたか?また、[良い質問をする方法について読む](http://stackoverflow.com/help/how-to-ask)をご覧ください。 –
いくつかの宿題のように見えます。あなたは何をしたのかを示し、より具体的な質問を記述する必要があります。 –
@プログラマーの間違って申し訳ありませんが、私が欲しいのは2次元の配列ボックスを '---'と '|'側面上。 – CodeX