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]
- C 语言:快速实现 5 个学生信息录入、按成绩升序排序并输出!(字节豆包 | 373点数解答 | 2024-10-30 00:37:20)415
- C语言实现:输入5名学生信息并按成绩升序排序输出(字节豆包 | 354点数解答 | 2024-10-30 18:45:58)359
- C语言:输入5个学生信息,按成绩升序排序并输出(字节豆包 | 373点数解答 | 2024-10-31 19:49:58)356
- C语言:输入5名学生信息并按成绩升序排序输出(字节豆包 | 326点数解答 | 2025-01-01 20:11:47)349
- Java 实现:定义尊享无忧学生类并打印学生信息(字节豆包 | 264点数解答 | 2024-09-18 16:21:36)290
- C语言实现多班级学生信息管理系统:含增删改查与多样排序功能(GPT | 2547点数解答 | 2024-12-15 22:08:58)363
- C语言实现学生信息管理系统:含增删改查与多种排序功能(GPT | 6408点数解答 | 2024-12-15 22:10:03)353
- 培训机构学员成绩与年龄更新:C++ 代码实现(DeepSeek | 186点数解答 | 2025-12-16 18:04:31)64
- Python 处理培训机构学员培训后年龄与 NOIP 成绩提升情况(DeepSeek | 73点数解答 | 2025-12-16 18:05:20)72
- 培训机构学员成绩提升:C++代码实现年龄与NOIP成绩更新(DeepSeek | 178点数解答 | 2025-12-31 12:20:24)65
- 成绩等级统计:20个60 - 100分成绩的等级数量揭秘(字节豆包 | 219点数解答 | 2025-04-09 10:20:32)223
- Java:抽象类 Vehicle 及子类 Car、MotorBike 实战演示(讯飞星火 | 440点数解答 | 2024-06-06 23:18:54)316