编写一个班级成绩排序程序。班级有班级号,班级人数和若干学生,每个学生有学号、姓名、三门课成绩。按学生总成绩从高到底进行排序。 【输入形式】输入班级号,及班级人数;然后输入班级中每个学生信息。 【输出形式】输出班级信息,以及按总成绩从高到底输出学生信息。 【样例输入】1(班级号) 3(班级人数) 1 a 98 89 78(输入三个学生信息,学号、姓名、三门课成绩) 2 b 78 86 67 3 c 87 98 96 【样例输出】class no:1 numbers:3 3 c 87 98 96 281 1 a 98 89 78 265 2 b 78 86 67 231c++
时间: 2023-12-06 15:42:11 浏览: 84
接收从键盘输入某班学生的学号、姓名、成绩,对学 生的成绩进行排序.zip
5星 · 资源好评率100%
以下是一个C++的班级成绩排序程序实现,具体注释见代码:
```cpp
#include <iostream>
#include <string>
#include <vector>
#include <algorithm> // 使用sort函数需要包含该头文件
using namespace std;
// 定义学生结构体
struct Student {
int id; // 学号
string name; // 姓名
int score1, score2, score3; // 三门课成绩
int totalScore; // 总成绩
};
// 比较函数,用于sort排序
bool cmp(const Student& s1, const Student& s2) {
return s1.totalScore > s2.totalScore;
}
int main() {
int classNo, num;
cin >> classNo >> num;
vector<Student> students(num); // 存储学生信息的vector容器
for (int i = 0; i < num; ++i) {
cin >> students[i].id >> students[i].name >> students[i].score1 >> students[i].score2 >> students[i].score3;
students[i].totalScore = students[i].score1 + students[i].score2 + students[i].score3;
}
// 按总成绩从高到低排序
sort(students.begin(), students.end(), cmp);
// 输出班级信息
cout << "class no:" << classNo << " numbers:" << num << endl;
// 输出学生信息
for (const auto& s : students) {
cout << s.id << ' ' << s.name << ' ' << s.score1 << ' ' << s.score2 << ' ' << s.score3 << ' ' << s.totalScore << endl;
}
return 0;
}
```
输入样例:
```
1 3
1 a 98 89 78
2 b 78 86 67
3 c 87 98 96
```
输出样例:
```
class no:1 numbers:3
3 c 87 98 96 281
1 a 98 89 78 265
2 b 78 86 67 231
```
阅读全文