期末考试结束了,数学成绩已经出来,数学老师请你帮忙编写一个程序,可以帮助老师对班级所有同学的考试分数按照由高到低进行排序,并输出按照成绩排序后每个同学的学号、姓名、数学成绩。 c++容器结构体
时间: 2024-12-05 18:21:50 浏览: 8
在C++中,你可以使用`std::vector`容器来存储学生的数据,结合`std::sort`函数来进行排序。首先,我们可以定义一个结构体(struct),例如`Student`,包含学号、姓名和成绩:
```cpp
#include <iostream>
#include <vector>
#include <algorithm> // 包含sort函数
// 定义学生结构体
struct Student {
int id; // 学号
std::string name; // 姓名
int score; // 数学成绩
// 默认构造函数
Student() : id(0), name(""), score(0) {}
Student(int id_, std::string name_, int score_) : id(id_), name(name_), score(score_) {}
};
int main() {
// 创建一个vector来存储学生数据
std::vector<Student> students;
// 添加学生数据,假设已经填充好了学生的分数
students.push_back(Student(1, "张三", 95));
students.push_back(Student(2, "李四", 88));
students.push_back(Student(3, "王五", 99));
// 对学生按成绩降序排序
std::sort(students.begin(), students.end(), [](const Student& a, const Student& b) { return a.score > b.score; });
// 输出排序后的学生信息
for (const auto& student : students) {
std::cout << "学号:" << student.id << ", 姓名:" << student.name << ", 成绩:" << student.score << "\n";
}
return 0;
}
```
阅读全文