#include <stdio.h>
int main()
{
int n,m=1,k,t=0,i=0,j,a[20],sum=1;
char s;
scanf("%d %c",&n,&s);
while(n>=sum)
{
a[i]=m;
m+=2;
sum+=2*m;
i++;
}
sum-=2*m;//sum表示打印沙漏用掉的符号数
for(j=i-1;j>=0;j--) //沙漏上部分的输出
{
for(k=0;k<t;k++)
printf(" ");//输出沙漏每行开始的空格
for(k=0;k<a[j];k++)
printf("%c",s);//输出a[j]个符号,构成沙漏的第j+1行
printf("\n");
t++;
}
t--;
for(j=1;j<=i;j++) //沙漏下部分的输出
{
t--;
for(k=0;k<t;k++)
printf(" ");
for(k=0;k<a[j];k++)
printf("%c",s);
if(j!=i)
printf("\n");
}
printf("%d",n-sum);
return 0;
}
打印沙漏
最新推荐文章于 2024-05-01 19:04:25 发布