如何打印带有字母的电路板

时间:2015-10-27 00:21:40

标签: c arrays multidimensional-array

我有一个2D数组,我向用户询问其尺寸,例如4×4。然后我想打印ABCD以标记行和ABCD垂直标记列。

我试图这样做但不确定如何正确循环它。

void printBoard (char board[26][26], int size);

int main(int argc, char** argv) {

int size; //board size is even and not exceeding 26

printf("Enter the board dimension: ");
scanf("%d", &size);

char boardgame[size][size];
printBoard (boardgame, size);

return (EXIT_SUCCESS);
}

void printBoard (char board [26][26], int size) {

for (int row = 0; row < size; row++) {
    for (int col = 0; col < size; size++) {
        printf("%c", board['A'+ row]['A'+ col]);
    }
}

}

1 个答案:

答案 0 :(得分:0)

你不能像这样使用字母作为数组索引。 'A'+行不起作用。 'A'是一个ASCII码为65的字符,所以你说的是65 +行。

其次,

printf("%c", board['A'+ row]['A'+ col]); 
就标记行和列而言,

什么都不做。在这里,您尝试打印出数组本身的内容。我假设您想在顶部标记列,并在侧面添加一列来标记行,如果是这样,您执行的打印语句过多。

此外,在增加字母时,您应该了解ASCII。 http://www.asciitable.com/

如您所见,65为大写字母A的ASCII。

#include <stdio.h>

int main(void) {
    printf("%c",65);
    return 0;
}

此代码将打印出A.我认为这可能会引发一个关于如何处理字母递增问题的想法。