为什么pta上的打印沙漏的测试点0和3一直显示格式错误
不知道哪里出错了
#include <stdio.h>
int main()
{
int n,i=1,j,cnt=0,cnt1=0,flag=0;
char c;
scanf("%d %c",&n,&c);
while(1)
{
if(n<=2*i*i-1)
{
break;
}
i++;
}
if(n==2*i*i-1)
cnt = i;
else
cnt = i-1;
for(i=0;i<cnt;i++)
{
for(j=0;j<2*cnt-1;j++)
{
if(j>=i&&j<2*cnt-1-i)
{
printf("%c",c);
cnt1++;
}
else
{
printf(" ");
}
}
printf("\n");
}
for(i=1;i<=cnt-1;i++)
{
for(j=1;j<=2*cnt-1;j++)
{
if(j>cnt-i-1&&j<=cnt+i)
{
printf("%c",c);
cnt1++;
}
else
{
printf(" ");
}
}
printf("\n");
}
printf("%d",n-(2*cnt*cnt-1));
}