C语言编程一个分数对应等级代码的问题

当输入大于100小于0的数时,显示“输入有误你分数对应的等级为:”
不清楚哪里有问题,求教学。


#include 
#include 

int main(void)
{
    char level;
    float score;
    printf("输入你的分数:");
    scanf("%f",&score);

    if(score < 0.0 || score > 100.0)
    {
        printf("输入有误");
    }
    else if(score >=90.0 && score <=100.0)
        level = 'A';
    else if(score >=60.0 && score < 90.0)
        level = 'B';
    else
        level = 'C';
    printf("你分数对应的等级为:%c\n",level);
    system("pause");
}

该回答引用ChatGPT

您的代码逻辑是正确的,但是您没有在输入有误时输出"你分数对应的等级为:",所以需要在输入有误的分支中添加这一行代码。另外,您可以将输入有误的判断条件中的"小于0"和"大于100"分开判断,以提高代码可读性。下面是修改后的代码:


#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
    char level;
    float score;
    printf("输入你的分数:");
    scanf("%f",&score);
 
    if(score < 0.0)
    {
        printf("输入有误,分数不能小于0");
    }
    else if(score > 100.0)
    {
        printf("输入有误,分数不能大于100");
    }
    else if(score >=90.0 && score <=100.0)
    {
        level = 'A';
        printf("你分数对应的等级为:%c\n",level);
    }
    else if(score >=60.0 && score < 90.0)
    {
        level = 'B';
        printf("你分数对应的等级为:%c\n",level);
    }
    else
    {
        level = 'C';
        printf("你分数对应的等级为:%c\n",level);
    }
    system("pause");
}

在这个修改后的代码中,如果输入的分数小于0,就会输出"输入有误,分数不能小于0";如果输入的分数大于100,就会输出"输入有误,分数不能大于100"。如果输入的分数在0到100之间,就会输出对应的等级。