在使用" for"的迭代变量时输出奇怪的输出在C中循环

时间:2018-01-05 16:02:13

标签: c

我目前正在为我的大学第一次考试开发一个简单的海战游戏,但我在游戏板上得到一个奇怪的输出......

GameBoard

它应该迭代我的" 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并再次给我奇怪的字符...

GameBoard_2

如果我没错,我认为这与ASCII代码有关(如果我错了,请纠正我),但我不知道如何解决这个问题。

你能解释一下我该如何解决这个问题。

2 个答案:

答案 0 :(得分:4)

准确控制我建议的角色

tabuleiro[0][j] = "123456789T"[j];

这将从该字符串中选择第j个字符

顺便说一下你得到的原因&#39;:&#39;因为&#39;:&#39;是&#39; 9&#39;之后的下一个ascii角色。 - 见http://www.asciitable.com/

答案 1 :(得分:3)

问题是import {ElementRef} from '@angular/core' export class MyFormComponent implements OnInit { constructor(private hostElement: ElementRef) {} onSubmit(){ // query your `<form>` element const form = this.hostElement.nativeElement.querySelector('form') // add any missing properties not in template attributes form.action = 'form/process/path'; form.method='POST'; // browser default submit form.submit(); } .... } 的字符代码,它是&#39;的字符代码:&#39;。您可以考虑从游戏阵列中删除列名和行名。它们只是标签而不是游戏的一部分(我假设)。

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] = '~';
    }
}