任意输入十个同学的姓名和成绩,并把成绩按照从大到小的顺序排列 写C++代码
时间: 2024-09-06 22:01:53 浏览: 44
你可以使用C++的`std::map`来存储学生的姓名和成绩,然后通过`std::sort`函数对成绩进行排序。这里是一个简单的示例代码:
```cpp
#include <iostream>
#include <map>
#include <vector>
#include <algorithm> // 包含sort函数
// 定义结构体表示学生信息,包含姓名和成绩
struct Student {
std::string name;
int score;
};
bool compare_scores(const Student& a, const Student& b) {
return a.score > b.score; // 比较函数,用于降序排序
}
int main() {
std::map<std::string, int> students;
// 输入10位同学的信息
for (int i = 0; i < 10; ++i) {
std::cout << "请输入第" << i+1 << "位同学的姓名和成绩,用空格分隔:";
std::string name;
int score;
std::cin >> name >> score;
students[name] = score; // 存储在map中
}
// 将map转换为vector,便于排序
std::vector<Student> student_list(students.begin(), students.end());
// 对成绩进行排序
std::sort(student_list.begin(), student_list.end(), compare_scores);
// 打印排序后的学生成绩
std::cout << "成绩从高到低:\n";
for (const auto& student : student_list) {
std::cout << student.name << ": " << student.score << "\n";
}
return 0;
}
```
阅读全文