[英]Strange Output while using the iterating variable of a “for” loop in C
我目前正在为大学的第一次考试开发一个简单的海战游戏,但在游戏板上却得到了奇怪的输出……
它应该迭代我的“ j”变量,但是我得到了那个奇怪的字符...
这是我的代码:
//CREATES COORDENATES OF THE GAMEBOARD
//ATTRIBUTE ONE LETTER TO EACH TRAY LINE
for (i=0;i<11;i++){
tabuleiro[i][0] = letra[i-1];
}
//ATTRIBUTE ONE NUMBER TO EACH TRAY COLUMN
for (j=1;j<11;j++){
tabuleiro[0][j] = j;
}
//CREATES THE "SEA"
for (i=1;i<11;i++){
for (j=1;j<11;j++){
tabuleiro[i][j] = '~';
}
}
我试图改变我的tabuleiro[0][j] = j;
到tabuleiro[0][j] = (j+'0');
但是然后它只迭代到9并再次给我奇怪的字符...
如果我没记错,我认为这与ASCII码有关(如果我记错了,请纠正我),但是我不知道如何解决此问题。
您能解释一下我该如何解决。
我建议对角色进行精确控制
tabuleiro[0][j] = "123456789T"[j];
这将从该字符串中选择第j个字符
顺便说一句,您得到':'的原因是因为':'是'9'之后的下一个ASCII字符-请参见http://www.asciitable.com/
问题是10 + '0' = 58
的字符代码,这是':'的字符代码。 您可能会考虑从游戏数组中删除列名和行名。 它们只是标签,而不是游戏的一部分(我认为)。
#define board_size 10
和
// Create game board and initialize grid to '~', in main() possibly
// Game is 10x10 grid
char tabuleiro[board_size][board_size];
for (int row = 0; row < board_size; row++) {
for (int col = 0; col < board_size; col++) {
tabuleiro[row][col] = '~';
}
}
具有绘制游戏板的功能:
void drawBoard(char tabuleiro[board_size][board_size]) {
// Print top line
printf(" ");
for (int col = 0; col < board_size; col++) {
printf(" %-2d", col+1);
}
printf("\n");
// Print grid
for (int row = 0; row < board_size; row++) {
// Print letter
printf("%c ", 'A' + row);
// Print board
for (int col = 0; col < board_size; col++) {
printf(" %c ", tabuleiro[row][col]);
}
printf("\n");
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.