第6课:单元实战:成绩统计
进度 0/24
📊
单元实战:成绩统计
第一场实战,把数组变成统计利器!
📖知识引入
🎯需求分析
输入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课完成!继续探索下一课吧 🚀
