由题意得:
1.输入数字n,即输出图案的层数
2.先输出“*”,再输出“D”
3.图案分为上下两段对称图形
4.上端“*”数量与递减,而“D”数量递增,每层符号数量与层数有关
5.代码如下:
#include<stdio.h>
int main()
{
int n,m,i,j;
scanf("%d",&n);
m=n/2+1;
for(i=1;i<=m;i++)
{
for(j=1;j<=m-i;j++)
printf("*");
for(j=1;j<=2*i-1;j++)
printf("D");
for(j=1;j<=m-i;j++)
printf("*");
printf("\n");
}
for(i=1;i<=n-m;i++)
{
for(j=1;j<=i;j++)
printf("*");
for(j=1;j<=n-2*i;j++)
printf("D");
for(j=1;j<=i;j++)
printf("*");
printf("\n");
}
return 0;
}