#include<stdio.h>
int main()
{
int num,i,j,k,a=3,sum=1,end;
char sym;
scanf("%d %c", &num,&sym);
if (num == 0)
printf("0");//讨论0的情况
else
{
while (sum + 2*a <= num)
{
sum = sum + 2*a;
a += 2;
}
end = num - sum;
if (a == 3)
{
printf("%c\n", sym);
printf("%d %c", end, sym);
}//该if讨论1-6的情况
else
{
for (i = 1; i <= (a - 3) / 2; i++)
{
for (k = 1; k < i; k++)
printf(" ");
for (j = 1; j <= a -2-2*(i-1); j++)
{
printf("%c", sym);
}
printf("\n");
}/*以上部分利用三个循环,创建了行,列,空格,图形上半部分*/
for (k = 1; k < (a - 1) / 2; k++)
printf(" ");
printf("%c\n", sym);/*该部分打出中间的一个符号*/
for (i = 1; i <= (a - 3) / 2; i++)
{
for (k = (a - 1) / 2 -1- i; k >0; k--)
printf(" ");
for (j = 1; j <= 3+ 2 * (i-1); j++)
{
printf("%c", sym);
}
printf("\n");
}
printf("%d %c", end, sym);
}/*以上打出图形下半部分*/
}
}
c语言打印沙漏
最新推荐文章于 2023-11-20 10:22:48 发布