チェッカーボード/チェス盤を表示するコードを作成しようとしています。私はチェッカーボード上のすべての正方形に番号を付けました。したがって、将来のプログラミングの目的としてピースの位置を手動で選択することができます。以下のような警告がpreview 2d配列8x8はcで動作しません
1 | 2 | 3| 4 | 5 | 6 | 7 | 8
---+---+---+---+---+---+---+---
9 | 0 | 1| 2 | 3 | 4 | 5 | 6
---+---+---+---+---+---+---+---
7 | 8 | 9| 0 | 1 | 2 | 3 | 4
---+---+---+---+---+---+---+---
5 | 6 | 7| 8 | 9 | 0 | 1 | 2
---+---+---+---+---+---+---+---
3 | 4 | 5| 6 | 7 | 8 | 9 | 0
---+---+---+---+---+---+---+---
1 | 2 | 3| 4 | 5 | 6 | 7 | 8
---+---+---+---+---+---+---+---
9 | 0 | 1| 2 | 3 | 4 | 5 | 6
---+---+---+---+---+---+---+---
7 | 8 | 9| 0 | 1 | 2 | 3 | 4
:
#include <stdio.h>
//{",",",",",",","},
void main()
{
int board[8][8] = {
{'1','2','3','4','5','6','7','8'},
{'9','10','11','12','13','14','15','16'},
{'17','18','19','20','21','22','23','24'},
{'25','26','27','28','29','30','31','32'},
{'33','34','35','36','37','38','39','40'},
{'41','42','43','44','45','46','47','48'},
{'49','50','51','52','53','54','55','56'},
{'57','58','59','60','61','62','63','64'}
};
/* Display the checkerboard */
printf("\n\n");
printf(" %c | %c | %c| %c | %c | %c | %c | %c \n", board[0][0], board[0][1], board[0][2], board[0][3], board[0][4], board[0][5], board[0][6], board[0][7]);
printf("---+---+---+---+---+---+---+---\n");
printf(" %c | %c | %c| %c | %c | %c | %c | %c \n", board[1][0], board[1][1], board[1][2], board[1][3], board[1][4], board[1][5], board[1][6], board[1][7]);
printf("---+---+---+---+---+---+---+---\n");
printf(" %c | %c | %c| %c | %c | %c | %c | %c \n", board[2][0], board[2][1], board[2][2], board[2][3], board[2][4], board[2][5], board[2][6], board[2][7]);
printf("---+---+---+---+---+---+---+---\n");
printf(" %c | %c | %c| %c | %c | %c | %c | %c \n", board[3][0], board[3][1], board[3][2], board[3][3], board[3][4], board[3][5], board[3][6], board[3][7]);
printf("---+---+---+---+---+---+---+---\n");
printf(" %c | %c | %c| %c | %c | %c | %c | %c \n", board[4][0], board[4][1], board[4][2], board[4][3], board[4][4], board[4][5], board[4][6], board[4][7]);
printf("---+---+---+---+---+---+---+---\n");
printf(" %c | %c | %c| %c | %c | %c | %c | %c \n", board[5][0], board[5][1], board[5][2], board[5][3], board[5][4], board[5][5], board[5][6], board[5][7]);
printf("---+---+---+---+---+---+---+---\n");
printf(" %c | %c | %c| %c | %c | %c | %c | %c \n", board[6][0], board[6][1], board[6][2], board[6][3], board[6][4], board[6][5], board[6][6], board[6][7]);
printf("---+---+---+---+---+---+---+---\n");
printf(" %c | %c | %c| %c | %c | %c | %c | %c \n", board[7][0], board[7][1], board[7][2], board[7][3], board[7][4], board[7][5], board[7][6], board[7][7]);
}
これが出力されます。これは私が得たものである
main.c:13:37: warning: multi-character character constant[-Wmultichar]
{'57','58','59','60','61','62','63','64'}
それは9より高い印刷できない文字のように見えます!私が望んでいたのは、(2次元配列の)チェッカーボードの簡単なプレビューでした。私はこのコードでいくつかの部分を変更しようとしましたが、運が無ければ...どんなアイデアですか?
あなたは、二重引用符で囲まれた文字列のループではない文字、そして%2Sフォーマットを必要としています。真剣に、このようにprintfの行と行をコピー/ペーストすることはできません。 –
すべての一重引用符を削除し、 'printf'で' "%d" 'を使用してください。 –
' int'は 'char'ではありません。複数シンボルの文字リテラルは意味をなさない。したがって、コンパイラの警告。また、隣接する番号のルックアップテーブルを持つことも意味をなさないので、実行時にこれらを計算することができます。 – Lundin