酷代码 AI
菜单
服务商

C++ 实现学生成绩排序:输出班级最高分与最低分同学信息及注意要点

以下是一个用 C++ 编写的程序,用于对学生信息进行排序,并输出班上最高分和最低分同学的姓名和成绩: ```cpp #include <iostream> #include <vector> #include <algorithm> // 定义学生结构体,包含姓名和成绩 struct Student { std::string name; int score; }; // 比较函数,用于按成绩从高到低排序 bool compareStudents(const Student& a, const Student& b) { return a.score > b.score; } int main() { // 存储学生信息的向量 std::vector<Student> students; int n; std::cout << "请输入学生的数量: "; std::cin >> n; // 输入每个学生的姓名和成绩 for (int i = 0; i < n; ++i) { Student s; std::cout << "请输入第 " << i + 1 << " 个学生的姓名: "; std::cin >> s.name; std::cout << "请输入第 " << i + 1 << " 个学生的成绩: "; std::cin >> s.score; students.push_back(s); } // 对学生信息按成绩从高到低排序 std::sort(students.begin(), students.end(), compareStudents); // 输出排序后的学生信息 std::cout << "学生成绩排名如下:" << std::endl; for (const auto& s : students) { std::cout << s.name << ": " << s.score << std::endl; } // 输出最高分和最低分同学的信息 std::cout << "最高分同学: " << students.front().name << ", 成绩: " << students.front().score << std::endl; std::cout << "最低分同学: " << students.back().name << ", 成绩: " << students.back().score << std::endl; return 0; } ``` 代码注释解释: 1. `Student` 结构体:用于存储每个学生的姓名和成绩。 2. `compareStudents` 函数:作为 `std::sort` 的比较函数,用于按成绩从高到低排序。 3. `main` 函数: - 首先,提示用户输入学生的数量。 - 然后,循环输入每个学生的姓名和成绩,并将其存储在 `students` 向量中。 - 接着,使用 `std::sort` 对 `students` 向量进行排序。 - 之后,输出排序后的学生信息。 - 输出最高分和最低分同学的姓名和成绩。 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 输入成绩时要确保输入的是有效的整数,否则可能会导致程序出错。 2. 当学生数量为 0 时,程序可能会出现越界访问的问题,需要进行特殊处理。 3. 在使用 `std::sort` 时,要确保比较函数的逻辑正确,否则可能会导致排序结果不符合预期。 ######[AI写代码神器 | 708点数解答 | 2025-11-30 20:44:21]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]