🐵指尖猴全新升级
第6课:单元实战:成绩统计
📊

单元实战:成绩统计

第一场实战,把数组变成统计利器!

📖知识引入

🎯需求分析
输入n个成绩,输出总分、平均分、最高分和不及格人数
🧮累加器模式
total从0起累加每个元素,是统计类题目的万能起手式
🚩打擂台求最值
让mx先当第一名,谁比它大谁上擂台,扫完就是最大值
✅条件计数
满足条件就cnt++,循环结束cnt就是答案
💡
平均分记得用1.0 * total / n转成小数,整数除法会把小数部分直接砍掉

🔍成绩统计完整程序

int n;
cin >> n;                    // 读入人数
vector<int> s(n);
for (int i = 0; i < n; i++) cin >> s[i];

int total = 0, mx = s[0], cnt = 0;
for (int i = 0; i < n; i++) {
    total += s[i];           // 累加总分
    if (s[i] > mx) mx = s[i];  // 打擂台更新最大值
    if (s[i] < 60) cnt++;    // 统计不及格人数
}

cout << "总分:" << total << endl;
cout << "平均:" << 1.0 * total / n << endl;
cout << "最高:" << mx << " 不及格:" << cnt << endl;

一趟循环同时完成求和、求最值、计数,效率拉满

🎯小测验

第1题:打擂台法求最大值时,mx的初值应设为?

第2题:求平均分时写 1.0 * total / n 的目的是?

第3题:统计不及格人数用什么模式?

📝本课知识点

  • ✓累加求和、擂台求最值、条件计数三大套路
  • ✓一趟循环可同时完成多项统计
  • ✓整数除法求平均要乘1.0
第6课完成!继续探索下一课吧 🚀