C++按总分成绩由高到低排出成绩的名次;
时间: 2024-09-14 13:09:40 浏览: 48
在C++中,为了按照总分成绩从高到低排出学生的名次,你可以创建一个包含学生信息的数据结构,比如`struct`或`class`,其中包含姓名和总分两个字段。然后使用`std::sort`函数和自定义的比较函数(`compare`函数),对这个数据结构的容器(如`vector`)进行排序。
以下是一个简单的示例:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
// 定义学生结构体
struct Student {
std::string name;
int total_score;
};
// 比较函数,用于降序排列
bool compareStudents(const Student& a, const Student& b) {
return a.total_score > b.total_score; // 按照总分从高到低
}
int main() {
std::vector<Student> students = {{"Tom", 90}, {"Jerry", 85}, {"Spike", 95}};
// 对学生成绩列表进行降序排序
std::sort(students.begin(), students.end(), compareStudents);
for (size_t i = 0; i < students.size(); ++i) {
std::cout << "Rank " << i+1 << ": " << students[i].name << " - Total Score: " << students[i].total_score << "\n";
}
return 0;
}
```
在这个例子中,首先定义了一个`Student`结构体,然后定义了一个`compareStudents`函数作为`std::sort`的比较规则。`main`函数中创建了一个学生数组,并通过排序后输出每个学生的排名及其分数。
阅读全文