关于打印沙漏问题/请问这是为什么啊

代码运行起来没有问题,为什么会给0分呢。
刚刚学,不太懂(不知道为什么发不了图片)
代码部分:

#include<stdio.h>
int main()
{
    int n,r,m,i,k,l;
    char c;
    r=1;
    scanf("%d%c",&n,&c);    
    while(n>=2*(r+2))
    {
        n-=2*(r+2);
        r+=2;
    }
    int s=r;
    for(i=1;i<=(r+1)/2;i++)
    {
        m=i;
        while((m-1)>0)
        {
            printf(" ");
            m-=1;
        }
        for(k=0;k<s;k++)
        {
            printf("%c",c);
        }
        s-=2;
        printf("\n");
    }
    s=3;
    for(l=1;l<=(r-1)/2;l++)
    {
        m=(r+1)/2-l;
        while((m-1)>0)
        {
            printf(" ");
            m-=1;
        }
        for(k=0;k<s;k++)
        {
            printf("%c",c);
        }
        s+=2;
        printf("\n");
    }
    return 0;
}

可能题目要求的输入是用空格隔开输入的数字和字符,但是你的scanf中没有这么做,需要在%d和%c间加一个空格

img