case后面不能用不等好吗

img

为什么不能运行,case不是能运行不等号吗,为什么这么写不正确

修改如下,供参考:

#include <stdio.h>
int main()
{
    int a,b,sum;
    printf("请输入两门成绩(整数):");
    do{
        sum = 0;
        scanf("%d %d", &a, &b);
        if (a < 0 || a > 100 || b < 0 || b > 100){
            printf("输入的成绩错误,请重新输入:\n");
            sum = 1;
        }
    }while (sum == 1);
    sum = a + b;
    switch(1*(sum >= 180 && sum <= 200) +
           2*(sum >= 160 && sum <  180) +
           3*(sum >= 140 && sum <  160) +
           4*(sum >= 120 && sum <  140) +
           5*(sum >=   0 && sum <  120)){
           case 1:printf("%d----> A",sum);break;
           case 2:printf("%d----> B",sum);break;
           case 3:printf("%d----> C",sum);break;
           case 4:printf("%d----> D",sum);break;
           case 5:printf("%d----> E",sum);break;
    }
    return 0;
}

不可以的。case里只能是个整型值

case后面加的是标签 比如 1 2 3 4这样的而且要都不相等。你这个要用if else 来做