酷代码 AI
菜单
服务商

上周我们完成了一场测试,现在zpl老师要知道班上的最高分和最低分。每个学生的信息包含了学生的姓名和成绩,请你给学生们排个名但不输出排行,输出最高分和最低分同学的姓名和成绩,如果有并列就按照输入顺序将他们都输出(c++)越简单越好

```cpp #include <iostream> #include <vector> #include <string> // 定义一个结构体来存储学生信息 struct Student { std::string name; int score; }; int main() { std::vector<Student> students; std::string name; int score; // 输入学生信息,直到输入结束 while (std::cin >> name >> score) { students.push_back({name, score}); } // 初始化最高分和最低分 int maxScore = students[0].score; int minScore = students[0].score; // 找出最高分和最低分 for (const auto& student : students) { if (student.score > maxScore) { maxScore = student.score; } if (student.score < minScore) { minScore = student.score; } } // 输出最高分的学生 std::cout << "最高分的学生:" << std::endl; for (const auto& student : students) { if (student.score == maxScore) { std::cout << student.name << " " << student.score << std::endl; } } // 输出最低分的学生 std::cout << "最低分的学生:" << std::endl; for (const auto& student : students) { if (student.score == minScore) { std::cout << student.name << " " << student.score << std::endl; } } return 0; } ``` 代码 1. 定义了一个`Student`结构体来存储学生的姓名和成绩。 2. 使用`std::vector`来存储所有学生的信息。 3. 通过`while (std::cin >> name >> score)`来持续读取学生信息,直到输入结束。 4. 初始化`maxScore`和`minScore`为第一个学生的成绩。 5. 遍历所有学生,找出最高分和最低分。 6. 再次遍历所有学生,输出最高分和最低分的学生信息。 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 输入结束条件的判断,要确保程序能正确处理输入结束的情况。 2. 处理并列情况时,要按照输入顺序输出。 3. 当输入为空时,程序可能会出现未定义行为,需要考虑这种边界情况。 [2025-11-30 20:51:22 | AI写代码神器 | 564点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多