程序检查无误 但是无法输出【C语言】

问题是:统计输入字符串中 数字 字母 空格 分别是出现几次


#include <stdio.h>
void main()
{
    int num[10]={0},i,x=0,y=0;
    char c;
    c=getchar();
    while(c!='\n')
    {
        if('0'<=c<='9')
        {
            num[c-'0']=num[c-'0']+1;
        }
        if(c==32)
        {
            x++;
        }
        if('A'<=c<='Z'||'a'<=c<='z')
        {
            y++;
        }
    }
    for(i=0;i<10;i++)
    {
        printf("num[%d]=%d\n",i,num[i]);
    }
    printf("block=%d\nother=%d",x,y);
}

#include <stdio.h>
void main() {
    int num[10]= {0},i,x=0,y=0;
    char c;

    while((c=getchar())!='\n') {
        if(c>='0'&& c<='9') {
            num[c-'0']++;
        }
        if(c==' ') {
            x++;
        }
        if((c>='A'&&c<='Z')||(c>='a' && c<='z')) {
            y++;
        }
    }
    for(i=0; i<10; i++) {
        printf("num[%d]=%d\n",i,num[i]);
    }
    printf("block=%d\nother=%d",x,y);
}

img