1. 程式人生 > >列印沙漏(c)

列印沙漏(c)

#include<stdio.h>
int main(void)
{
int n;
char c;
scanf("%d %c",&n,&c);
int sum=1,k=1;
for(int i=3;;i+=2)
{
sum+=2*i;
if(sum<=n)
{
k++;
}
else break;
}
int space=0;
for(int i=k;i>0;i--)
{
int z=2*i-1;
for(int j=0;j<space;j++)
{
printf(" ");
}
space++;
while(z--)
{
printf("%c",c);
}
printf("\n");
}
space-=2;
for(int i=2;i<=k;i++)
{
int z=2*i-1;
for(int j=0;j<space;j++)
{
printf(" ");
}
space--;
while(z--)
{
printf("%c",c);
}
printf("\n");
}
int a=1;
for(int i=2;i<=k;i++)
a+=(2*i-1)*2;
a=n-a;
printf("%d",a);