为什么不一样啊(哭)

题目内容:
下面代码的功能是将百分制成绩转换为5分制成绩
具体功能是:如果用户输入的是非法字符或者不在合理区间内的数据(例如输入的是a,或者102,或-45等),则程序输出 Input error!,否则将其转换为5分制输出。

#include 
int main()
{
    printf("Please input score:\n");
    int score,s;
    char grade;
    printf("%d",s);    //
    scanf("%d",&score);
    s=score/10;
     printf("%d",s);   //
    switch(s)
    {
        case 10:
        case 9: grade='A';    printf("grade: %c\n",grade);break;
        case 8: grade='B';     printf("grade: %c\n",grade);break;
        case 7: grade='C';    printf("grade: %c\n",grade);break;
        case 6: grade='D';    printf("grade: %c\n",grade);break;
        case 5:
        case 4:
        case 3:
        case 2:
        case 1:grade='E';printf("grade: %c\n",grade);break;
        default:printf("Input error!\n");
    }
    return 0;
}

这一个代码运行输入a 后 通过输出可以看到 赋值前s为0 赋值后s为0 输出Input error!

#include 
int main()
{
    printf("Please input score:\n");
    int score,s;
    char grade;
    printf("%d",s);
    scanf("%d",&score);
    s=score/10;
      printf("%d",s);
    switch(s)
    {
        case 10:
        case 9: break;
        case 8:break;
        case 7: break;
        case 6:break;
        case 5:
        case 4:
        case 3:
        case 2:
        case 1:printf("case1\n");break;
        default:printf("Input error!\n");
    }
    return 0;
}

这一个代码运行输入a 后 通过输出可以看到 赋值前s为0 赋值后s为1 输出case1
为什么这两个代码运行后输入一样 赋值前s一样 而进入的case不一样呀

输入a s为1?那你看看你的score是多少呢,应该都是输出Input error!才对

你可以不用这么写,你可以加个判断,不是0-100的分数就是直接打印Input error! 其他不变

供参考!谢谢!

img

img

img

#include <stdio.h>

int main(void)
{
    int score;
    char grade[] = "ABCDE";

    printf("Please input score:\n");
    scanf("%d", &score);
        if (score > 100 || score < 0)
    {
        printf("Input error!\n");
        return -1;
    }
    score /= 10;

    switch (score)
    {
    case 10:
    case 9:
        printf("grade: %c\n", grade[0]);
        break;
    case 8:
        printf("grade: %c\n", grade[1]);
        break;
    case 7:
        printf("grade: %c\n", grade[2]);
        break;
    case 6:
        printf("grade: %c\n", grade[3]);
        break;
    case 5:
    case 4:
    case 3:
    case 2:
    case 1:
        printf("grade: %c\n", grade[4]);
        break;
    default:
        printf("Input error!\n");
    }
    return 0;
}