大一新生被c语言整麻了

img


这道ti怎么用switch函数写啊?case不是不能表达范围吗?

if 结构,供参考:

#include <stdio.h>
int main()
{
    int score = 101;
    scanf("%d", &score);
       if (score >=90 && score <= 100) printf("A");
    else if (score >=80 && score < 90) printf("B");
    else if (score >=70 && score < 80) printf("C");
    else if (score >=60 && score < 70) printf("D");
    else if (score >=0  && score < 60) printf("E");
    else                               printf("Error");
    return 0;
}

switch 结构,供参考:

#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("A");break;
        case 2:printf("B");break;
        case 3:printf("C");break;
        case 4:printf("D");break;
        case 5:printf("E");break;
        default:printf("Error!");
    }
    return 0;
}

先分数除以10,再 swtich case 10 9876543210

img

img

#include<stdio.h>
 
double score;                
int a;                      
 
int main()
{
 
printf("请输入你的成绩:\n");  
scanf("%lf",&score);
 if(score<0 || score>100)
        printf("输入有误,请重新输入\n");
    else{
        a=score/10;                  
         
        switch(a)
        {
        case 10:
        case 9:printf("您的成绩是:A\n");break;
        case 8:printf("您的成绩是:B\n");break;
        case 7:printf("您的成绩是:C\n");break;
        case 6:printf("您的成绩是:D\n");break;
        case 5:
        case 4:
        case 3:
        case 2:
        case 1:
        case 0:printf("您的成绩是:E\n");break;
        default:printf("输入有误,请重新输入\n");   
        }
    }
 
return 0;
}


把分数除以10,(switch(grade/10))然后用switch语句对应6 7 8 9和default(成绩低于60),If语句写成绩大于100或小于0则输出结果