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

如何在C语言switch-case中实现90-100分区间判断输出A等级

C语言用switch-case实现成绩区间判断的正确写法

你想通过switch-case判断学生成绩,当分数在90-100(含)时输出“A等级”,但原来的代码里case后直接写条件表达式不符合C语言语法——C语言要求case后面必须是常量表达式,不能是变量或条件判断语句。下面是修正后的写法,完全通过case部分实现区间判断:

错误代码回顾

int user_marks;
printf("Enter your obatined marks to know your grade: ")
scanf("%d", &user_marks);

switch (user_marks)
{
case user_marks>=90 && user_marks<=100:
    printf("Your grade is A.");
    break;

default:
    printf("Enter valid marks.");
    break;
}

修正后的代码

#include <stdio.h>

int main() {
    int user_marks;
    printf("请输入你的成绩以查看等级: ");
    scanf("%d", &user_marks);

    // 通过整数除法将成绩转换为可匹配的常量值
    switch (user_marks / 10) {
        // 90-99分对应user_marks/10=9,100分对应user_marks/10=10
        case 9:
        case 10:
            printf("该学生获得A等级\n");
            break;
        default:
            printf("请输入有效的成绩(0-100)\n");
            break;
    }
    return 0;
}

说明

  • 核心思路:利用整数除法的特性,把90-100这个区间的分数转换成9或10这两个常量值,这样就能用case匹配。
  • 补充了头文件#include <stdio.h>和main函数框架,修复了原代码中printf语句末尾缺少分号的语法错误。
  • 如果要扩展其他等级(比如80-89为B),只需继续添加对应的case即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 21:15:46