【PAT】L1-002. 打印沙漏【C语言实现】


【PAT】L1-002. 打印沙漏【C语言实现】_第1张图片

思路:通过输入的符号个数去判断输出的行数。

#include 
#include  
int main()
{
	int n;
	char ch;
	while(scanf("%d %c",&n,&ch)!=EOF)
	{
		int i,j,k,h,end1=0;
		h=sqrt((n+1)/2);//2*h*h-1=n;
		for(i=h;i>0;i--)
		{
			for(k=0;k0;j--)
				printf("%c",ch);
		printf("\n");
		end1++;
		}
		for(i=2;i<=h;i++)
		{
			for(k=end1-1;k>1;k--)
				printf(" ");	
			for(j=0;j<2*i-1;j++)
				printf("%c",ch);
		printf("\n");
		end1--;
		}
		int num=n-(2*h*h-1);
		printf("%d\n",num);
	}
	return 0;
}

你可能感兴趣的:(PAT)