欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-13 16:36:47
...

PTA团体程序设计天梯赛-练习集 L1-002 打印沙漏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;
}