题目:
输入一个正整数n作为行数,要求输出n行字符构成的图形。例如输入4,输出如下图形:
_1__A
__BBB
_CCCCC
DDDDDDD
思路分析:
- 需要从A每行依次输出下一个字母,所以将其定义为char字符型
- 用i循环,在最外层输出\n\换行,控制输出的行数
- 用j控制输出的是—1还是字符,有如下规律:
如输出4行(n = 4)
行数 | 空格数 | 字符数 |
---|---|---|
1 | 3 | 1 |
2 | 2 | 3 |
3 | 1 | 5 |
4 | 0 | 7 |
i | n - i | 2i - 1 |
代码实现:
#include<stdio.h>
int main()
{
int i = 0, j = 0, n = 0; //用i循环控制行数,用j控制输出
char a = 'A';
printf("Input the n:");
scanf("%d",&n);
for(i = 1; i <= n; i++)
{
for(j = 1; j <= n - i; j++)
{
printf(" ");
}
for(j = 1; j <= 2*i - 1; j++)
{
printf("%c",a);
}
printf("\n");
a = a + 1;
}
return 0;
}
运行结果:
如要输出4行的菱形: