这次是PTA打印沙漏的题,我大部分都是对的,但是PTA说的我还有一个错误,如果大家有空可以帮我看看我的问题出在哪里吗?
源代码如下:
#include<stdio.h>
int main()
{
int n, cha = 0;
char ch;
scanf("%d %c", &n, &ch);
if(n == 1)
{
printf("%c",ch);
}
else
{
int sum = 1, hang = 2;
for(hang = 2; ; hang ++)
{
sum += 2 * (2 * hang - 1);
if(sum >= n)
break;
}
if(sum > n)
{
sum -= 2 * (2 * hang - 1);
hang = hang - 1;
cha = n - sum;
}
int h = hang;
for(h; h >= 1; h --)
{
int k = 2 * h - 1, l = hang - h;
for(l; l > 0; l --)
printf(" ");
for(k; k > 0; k --)
{
printf("%c",ch);
}
printf("\n");
}
int a = 2;
for(a; a <= hang; a ++)
{
int k = 2 * a - 1, l = hang - a;
for(l; l > 0; l --)
printf(" ");
for(k; k > 0; k --)
{
printf("%c",ch);
}
printf("\n");
}
if(cha != 0)
printf("%d",cha);
}
return 0;
}
以下是PTA的报错:
部分运行结果: