我试图打印以下模式:
@@@@@@@@
@@@@@@@
@@@@@@
@@@@@
但是,我得到了这个:
@ABCDEFG
ABCDEFG
BCDEFG
CDEFG
我不确定我做错了什么。我希望得到任何反馈或指导。
#include <stdio.h>
#define ROWS 4
#define CHARS 8
int main(void)
{
for(int row = 0; row < ROWS; row++)
{
for(char ch = ('@' + row); ch < ('@' + CHARS); ch++)
printf("%c", ch);
printf("\n");
}
return 0;
}
答案 0 :(得分:5)
+
运算符无法按照您的想法运行。 @
转换为它的ASCII值(64),然后添加row
。当row
为2
时,您说:打印出与A
编号相对应的字符(64 + 2)。
我会将内部循环更改为:
for(int ch = row; ch < CHARS; ch++) {
printf("%c", '@');
}
printf("\n");
答案 1 :(得分:5)
为什么让第二个for
与该角色复杂化。它可以简单地
for(int col = row; col < CHARS; col++)
printf("%c", '@');
答案 2 :(得分:0)
将ch更改为'@'
printf("%c", '@');