我有一个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]);
}
}
}
答案 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.我认为这可能会引发一个关于如何处理字母递增问题的想法。