代码在这里:
#include <stdio.h>
#define ROWS 6
#define CHARS 10
int main(void)
{
int row;
char ch;
for(row = 0; row < ROWS; row++)
{
printf("%d\n", row);
for(ch = 'A'; ch < ('A' + CHARS); ch++)
printf("%c", ch);
printf('\n');
}
getchar();
return 0;
}
输出:
0
ABCDEF
我认为输出类似于:
0
ABCDEF
1
ABCDEF
2
ABCDEF
3
ABCDEF
4
ABCDEF
5
ABCDEF
问题是为什么循环只有一次。
答案 0 :(得分:3)
"ABCDEF"
包含6个字符,因此您需要更改
#define CHARS 10
到
#define CHARS 6
此外,printf
采用字符串,因此您应使用"\n"
代替'\n'
。
#include <stdio.h>
#define ROWS 6
#define CHARS 6
int main(void)
{
int row;
char ch;
for(row = 0; row < ROWS; row++)
{
printf("%d\n", row);
for(ch = 'A'; ch < ('A' + CHARS); ch++)
printf("%c", ch);
printf("\n"); // Should use double quotes here
}
getchar();
return 0;
}