如何使用了switch语句,但只能输出default后面的语句?(语言-c语言)

我的代码使用了一个switch语句,但是运行时只显示default的输出,麻烦帮忙解答一下,十分感谢

#include 
int main()
{
    char ch;
    printf("请输入一个字符:");
    scanf("%c",&ch);
    printf("%d\n",ch);
    switch(ch)
    {
        case 'ch>=80&&ch<=89':printf("该字符为数字");
                break;
        case 'ch>=65&&ch<=90':printf("该字符为大写字母");
                break;        
        case 'ch>=97&&ch<=122':printf("该字符为小写字母");
                break;
        case 'ch=32':printf("该字符为空格");
                break;
        default: printf("其他字符\n");
                
    
    }
return 0;
}

```

参考如下:

#include <stdio.h>
int main()
{
    char ch;
    printf("请输入一个字符:");
    scanf("%c",&ch);
    printf("%c\n",ch);
    switch(ch)
    {
        case '0' ... '9':printf("该字符为数字");
                break;
        case 'A' ... 'Z':printf("该字符为大写字母");
                break;        
        case 'a' ... 'z':printf("该字符为小写字母");
                break;
        case ' ':printf("该字符为空格");
                break;
        default: printf("其他字符\n");         
    }
    return 0;
}


如有帮助,欢迎点赞+采纳哈!

这么改,供参考:

#include <stdio.h>
int main()
{
    char ch;
    printf("请输入一个字符:");
    scanf("%c", &ch);
    printf("%c\n", ch);
    switch (1*(ch >= 48 && ch <= 57 )+
            2*(ch >= 65 && ch <= 90 )+
            3*(ch >= 97 && ch <= 122)+
            4*(ch == 32))
    {
    case 1:printf("该字符为数字");
        break;
    case 2:printf("该字符为大写字母");
        break;
    case 3:printf("该字符为小写字母");
        break;
    case 4:printf("该字符为空格");
        break;
    default: printf("其他字符\n");
    }
    return 0;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^