2.输入一个班的成绩到一维数组中,求最高分,平均分,并统计各分数段的人数。其中分数段有:不及格(<60)、及格(60~69)、中(70~79)、良(80~89)、优(>90)。
时间: 2024-03-10 14:48:51 浏览: 44
好的,这是一个关于成绩统计的问题。下面是一个示例代码,可以实现你的要求:
```c++
#include <iostream>
using namespace std;
int main() {
const int n = 5; // 假设班级人数为 5
int scores[n]; // 定义一个长度为 n 的数组,存储成绩
int max_score = 0; // 最高分
int sum = 0; // 总分,用于计算平均分
int count_fail = 0; // 不及格人数
int count_pass = 0; // 及格人数
int count_middle = 0; // 中等人数
int count_good = 0; // 良好人数
int count_excellent = 0; // 优秀人数
// 输入成绩
for (int i = 0; i < n; i++) {
cout << "请输入第 " << i+1 << " 个学生的成绩:";
cin >> scores[i];
// 更新最高分
if (scores[i] > max_score) {
max_score = scores[i];
}
// 更新总分
sum += scores[i];
// 统计各分数段的人数
if (scores[i] < 60) {
count_fail++;
} else if (scores[i] < 70) {
count_pass++;
} else if (scores[i] < 80) {
count_middle++;
} else if (scores[i] < 90) {
count_good++;
} else {
count_excellent++;
}
}
// 计算平均分
double average = sum / double(n);
// 输出结果
cout << "最高分:" << max_score << endl;
cout << "平均分:" << average << endl;
cout << "不及格人数:" << count_fail << endl;
cout << "及格人数:" << count_pass << endl;
cout << "中等人数:" << count_middle << endl;
cout << "良好人数:" << count_good << endl;
cout << "优秀人数:" << count_excellent << endl;
return 0;
}
```
这段代码中,定义了一个长度为 `n` 的数组 `scores`,用于存储班级中每个学生的成绩。然后通过循环输入每个学生的成绩,并更新最高分、总分和各分数段的人数。最后计算平均分,并输出结果。注意,为了计算平均分,需要将总分除以班级人数,并将其中一个操作数转换为浮点数,以避免整数相除时的精度损失。
阅读全文