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

C++成绩评级代码修复求助:输出错误+需实现低分循环输入

成绩等级评定代码问题修复与重复输入功能实现

原代码的核心问题

  • 条件判断写法错误:C/C++不支持grades > 80 < 70这类连续比较,必须用&&连接两个独立条件,原代码的区间逻辑完全混乱,导致等级判断失效。
  • 未调用评定函数:主函数读取分数后,没有执行mygrade函数,且printf语句缺少参数、输出内容错误。
  • 无重复输入逻辑:未实现低分重复输入的需求。
  • 语法与拼写问题:void main()不符合C++标准,存在Distinciton、vaild这类拼写错误,且引入了未使用的头文件。

修正后的完整代码

#include <stdio.h>

void mygrade(int grades)
{
    if (grades >= 90)
        printf("High distinction");
    else if (grades >= 80 && grades < 90)
        printf("Your Grade is Distinction");
    else if (grades >= 70 && grades < 80)
        printf("Credit");
    else if (grades >= 50 && grades < 70)
        printf("Pass");
    else if (grades < 50)
        printf("Fail");
    else
        printf("Enter valid Marks");
}

int main()
{
    int grades;
    do
    {
        printf("Enter your score for this unit\n");
        scanf("%d", &grades);
        
        printf("Your grade for this unit is: ");
        mygrade(grades);
        putchar('\n');
        
        if (grades < 50)
            printf("Score too low, please re-enter.\n");
    } while (grades < 50);

    return 0;
}

修改说明

  1. 修复区间判断:重新定义每个等级的分数区间,用&&连接上下限,确保逻辑正确:
    • 90及以上:High distinction
    • 80-89:Distinction
    • 70-79:Credit
    • 50-69:Pass
    • 低于50:Fail
  2. 完善主函数逻辑:调用mygrade输出等级,修正printf的错误,添加do-while循环实现低分重复输入——只要输入分数低于50,就重复提示用户重新输入。
  3. 修正语法细节:改用标准的int main(),移除无用头文件,修正拼写错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 13:10:31