Switch语句语法出现的问题

img

img


可以帮忙看看怎么回事吗?本人初学Switch语句有很多不清楚的地方。

switch 只能case 12345 这样,不能用范围判断,要不就用if判断范围,要不就用分数/10再 case 987654,代表90,80,70,有75分里边再嵌套一层

供参考:

#include <stdio.h>
int main()
{
    int score = 101;
    scanf("%d", &score);
    switch (1 * (score >= 90 && score <= 100) +
        2 * (score >= 80 && score < 90) +
        3 * (score >= 70 && score < 80) +
        4 * (score >= 60 && score < 70) +
        5 * (score >= 0 && score < 60))
    {
    case 1:printf("优秀"); break;
    case 2:printf("良好"); break;
    case 3:printf("良好"); break;
    case 4:printf("及格"); break;
    case 5:printf("不及格"); break;
    default:printf("Error!");
    }
    return 0;
}