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

C++基于if选择结构的百分制成绩转绩点功能实现问题

C++成绩转绩点代码调整方案

原代码核心问题

  1. 成绩类型定义为int,无法匹配带小数的阈值判断,会出现精度丢失
  2. 错误输入判断条件逻辑错误,grade > 100 && grade < 0永远无法成立,应改为逻辑或
  3. 错误分支仅和最后一个if绑定,输入超出范围时无法正常触发提示
  4. 缺少原始成绩输出逻辑
  5. 连续使用独立if会造成不必要的性能开销

调整后完整代码

#include <iostream>
using namespace std;

int main(){
    // 改用double存储成绩,适配带小数的阈值判断
    double grade;
    cout << "Enter a grade input : ";
    cin >> grade;
    
    // 先做合法性校验
    if (grade < 0 || grade > 100) {
        cout << "Wrong Data" << endl;
    } else {
        // 合法则先输出原始成绩
        cout << "Your input grade is: " << grade << endl;
        // 改用if-else if阶梯结构,避免无效判断
        if (grade >= 94 && grade <= 100){
            cout << "Your output grade is: 1.00" << endl;
        }   
        else if (grade >= 88.50 && grade <= 93.39){
            cout << "Your output grade is: 1.25" << endl;
        }
        else if (grade >= 83 && grade <= 88.49){
            cout << "Your output grade is: 1.50" << endl;
        }
        else if (grade >= 77.5 && grade <= 82.99){
            cout << "Your output grade is: 1.75" << endl;
        }
        else if (grade >= 72 && grade <= 77.49){
            cout << "Your output grade is: 2.00" << endl;
        }    
        else if (grade >= 65.5 && grade <= 71.99){
            cout << "Your output grade is: 2.25" << endl;
        }
        else if (grade >= 61 && grade <= 65.49){
            cout << "Your output grade is: 2.50" << endl;
        }
        else if (grade >= 55.5 && grade <= 60.99){
            cout << "Your output grade is: 2.75" << endl;
        }
        else if (grade >= 50 && grade <= 55.49){
            cout << "Your output grade is: 3.00" << endl;
        }
    }
    return 0;
}

关键改动说明

  • 数据类型改为double,支持用户输入带小数的成绩,避免阈值判断误差
  • 优先做输入范围校验,不合法直接输出Wrong Data,符合需求要求
  • 新增原始成绩输出逻辑,满足先展示用户输入、再展示对应绩点的要求
  • 将独立if改为else if链式结构,匹配完对应区间后直接跳出判断,运行效率更高
  • 修正了错误输入的判断逻辑,将逻辑与&&改为逻辑或||,保证异常输入能正确触发提示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 09:54:03