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

C++初学者如何简化计算班级成绩平均分的冗余代码

代码优化方案

你这段代码的核心冗余点是重复书写了10次结构完全一致的输入、读取逻辑,还单独定义了10个独立变量存储单个成绩,完全可以用循环处理重复流程,配合累加变量统计总分,大幅压缩重复代码,后续如果需要调整学员人数也只需要改一个数值,不用重写大段重复逻辑。

优化后的参考代码如下:

#include <iostream>
using namespace std;

int main()
{
    double total_score = 0;
    const int student_num = 10;
    for (int i = 1; i <= student_num; ++i) {
        double mark;
        cout << "Input mark for learner " << i << ": ";
        cin >> mark;
        total_score += mark;
    }
    double average = total_score / student_num;
    cout << "The class average mark is: " << average << endl;
    return 0;
}

优化点说明

  • 去掉了10个独立的成绩变量,用循环变量i自动生成学员序号,不需要手写1到10的序号
  • 不需要等所有成绩输入完再统一求和,输入一个成绩就直接累加到总分变量里,节省不必要的内存占用
  • 把学员总数定义为常量student_num,后续如果要统计20人、50人的平均分,只需要修改这个常量的值即可,不用改动循环、计算的相关逻辑
  • 给输入提示补了冒号和尾部空格,交互时光标不会直接贴在提示文字末尾,使用体验更好

如果追求更短的代码长度,还可以进一步合并临时变量,但不建议为了短牺牲代码可读性,上面的写法已经兼顾简洁度和可维护性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 23:27:32