建立一个学生成绩表,输入每个学生的学号、姓名、和三门课程的成绩,编程求出每个学生的总分,并按照总分从高分到低分对成绩表进行排序并输出该班级排序后的学生成绩表。 输入格式: 在一行中输入学生数n,在接下去的n行每行输入一个学生的信息。学生信息包括学号,姓名和三门课的成绩。其中学号和姓名以不含空格的字符串形式表示。 输出格式: 输出按总分从高到低排序后的学生成绩表。一行输出一个学生的信息。学生信息包括学号、姓名、三门课成绩以及总分用c++
时间: 2024-02-23 10:01:52 浏览: 59
C++输入函数和成绩显示函数,并计算每位同学的总分和平均分,对成绩排名输出等.pdf
以下是实现该功能的 C++ 代码:
```cpp
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
struct Student {
string id;
string name;
int score1;
int score2;
int score3;
int total_score;
};
bool cmp(const Student& s1, const Student& s2) {
return s1.total_score > s2.total_score;
}
int main() {
int n;
cin >> n;
vector<Student> students(n);
for (int i = 0; i < n; i++) {
cin >> students[i].id >> students[i].name >> students[i].score1 >> students[i].score2 >> students[i].score3;
students[i].total_score = students[i].score1 + students[i].score2 + students[i].score3;
}
sort(students.begin(), students.end(), cmp);
for (int i = 0; i < n; i++) {
cout << students[i].id << " " << students[i].name << " " << students[i].score1 << " " << students[i].score2 << " " << students[i].score3 << " " << students[i].total_score << endl;
}
return 0;
}
```
该程序首先读入学生数量,并根据数量创建一个 `vector` 容器来存储每个学生的信息。在读入每个学生的信息时,程序将学生的三门课成绩相加,得到学生的总分,并将其存储在 `total_score` 字段中。接着,程序调用 `sort` 函数按照学生的总分从高到低对学生信息进行排序,最后按顺序输出排好序的学生信息。
阅读全文