You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用switch case控制语句实现学生成绩对应等级查询程序

C语言分数等级判定(switch case实现)

原代码问题说明

  • scanf("%d\n", &marks)中的\n是多余参数,会导致输入分数后需要额外输入内容才能继续执行,需要删除
  • 直接将原始分数作为switch的判断值,无法匹配区间判定规则,需要先对分数做整除10的映射处理
  • 缺少分数合法性校验逻辑,也没有覆盖所有分数区间的匹配分支

判定规则

  1. 90-100 分对应等级 A
  2. 80-89 分对应等级 B
  3. 70-79 分对应等级 C
  4. 60-69 分对应等级 D
  5. 0-59 分对应等级 E

修正后可运行代码

#include <stdio.h>

int main(){
    int marks;
    printf("Enter your marks(0-100): ");
    scanf("%d", &marks);
    
    // 校验分数合法性
    if (marks < 0 || marks > 100) {
        printf("输入的分数不合法,请输入0-100之间的整数\n");
        return 0;
    }
    
    // 分数整除10映射为离散值,适配switch case逻辑
    switch (marks / 10) {
        // 90-100分对应9、10两个值,利用case穿透合并处理
        case 10:
        case 9:
            printf("Your Grade is A\n");
            break;
        case 8:
            printf("Your Grade is B\n");
            break;
        case 7:
            printf("Your Grade is C\n");
            break;
        case 6:
            printf("Your Grade is D\n");
            break;
        // 0-59分统一走default分支
        default:
            printf("Your Grade is E\n");
            break;
    }
    return 0;
}

内容的提问来源于stack exchange,提问作者Kartik9000

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 17:18:01