PAT1027的打印沙漏 怎么错的啊,有大佬看看吗?

#include<stdio.h>#include<math.h>int main(){ int n,m,i,j,s,a; char c; scanf("%d",&n); getchar(); scanf("%c",&c); for(a=1;2*a*a-1<=n;a++) { m = a; } for(i=m;i>0;i--) { sczf(m-i); scsz(2*i-1); printf("\n"); } for(i=2;i<=m;i++) { sczf(m-i); scsz(2*i-1); printf("\n"); } if(n!=0) printf("%d",n-(2*m*m-1)); else printf("0");}void scsz(int n){ int i; for(i=0;i<n;i++) printf("*");}void sczf(int n){ int i; for(i=0;i<n;i++) printf(" ");}