PTA团体程序设计天梯赛-练习集 L1-002 打印沙漏

在这里插入图片描述在这里插入图片描述

include <stdio.h>
void Show(int num,char symbol); //显示字符
int Charge(int n);//判断打印行数
int main()
{
	int number,n,i,m=0;
	char x;
	scanf("%d %c",&number,&x);
	n=Charge(number);
	for(i=1;i<=n/2+1;i++)
	{
		Show(i-1,' ') ;
		Show(1+2*(1+n/2-i),x);
		m += 1+2*(1+n/2-i);
		putchar('\n');
	}
	for(i=1;i<=n/2;i++)
	{
		Show(n/2-i,' ');
		Show(1+2*i,x);
		m += 1+2*i;
		putchar('\n');
	}
	printf("%d",number-m);
	return 0;
}
void Show(int num,char symbol)
{
	int i;
	for(i=1;i<=num;i++)
	{
		printf("%c",symbol);
	}
}
int Charge(int n)
{
	int i=1,m,k;
	m=n-1;
	k=3;
	for(;m>=2*k;k += 2,i += 2)
	{
		m -= 2*k;
	}
	return i;
}
发布了13 篇原创文章 · 获赞 5 · 访问量 497

猜你喜欢

转载自blog.csdn.net/qq_44410340/article/details/91038556