FZ信息学比赛学生成绩排序及低年级人数统计的C++实现
以下是实现该功能的C++代码: ```cpp #include <iostream> #include <vector> #include <algorithm> // 定义学生结构体,包含成绩和年级 struct Student { int score; int grade; }; // 自定义比较函数,用于排序 bool compare(const Student& a, const Student& b) { if (a.score != b.score) { return a.score > b.score; // 成绩从高到低排序 } return a.grade < b.grade; // 成绩相同,年级从低到高排序 } int main() { int n; std::cin >> n; std::vector<Student> students(n); // 读取学生成绩和年级 for (int i = 0; i < n; ++i) { std::cin >> students[i].score >> students[i].grade; } // 对学生进行排序 std::sort(students.begin(), students.end(), compare); // 计算每个排名的学生前面有多少个学生年级低于他 for (int i = 0; i < n; ++i) { int count = 0; for (int j = 0; j < i; ++j) { if (students[j].grade < students[i].grade) { ++count; } } std::cout << count << std::endl; } return 0; } ``` ### 代码解释: 1. **结构体定义**:定义了一个`Student`结构体,包含两个成员变量`score`和`grade`,分别表示学生的成绩和年级。 2. **自定义比较函数**:`compare`函数用于对学生进行排序。首先比较成绩,成绩高的学生排在前面;如果成绩相同,则比较年级,年级低的学生排在前面。 3. **读取输入**:读取学生的数量`n`,并依次读取每个学生的成绩和年级。 4. **排序**:使用`std::sort`函数对学生进行排序。 5. **计算结果**:遍历排序后的学生列表,对于每个学生,统计其前面年级比他低的学生数量,并输出结果。 ######[AI问答 | 527点数解答 | 2026-02-27 22:24:42]
- C 语言:快速实现 5 个学生信息录入、按成绩升序排序并输出!(字节豆包 | 373点数解答 | 2024-10-30 00:37:20)403
- C语言实现:输入5名学生信息并按成绩升序排序输出(字节豆包 | 354点数解答 | 2024-10-30 18:45:58)345
- C语言:输入5个学生信息,按成绩升序排序并输出(字节豆包 | 373点数解答 | 2024-10-31 19:49:58)339
- C语言:输入5名学生信息并按成绩升序排序输出(字节豆包 | 326点数解答 | 2025-01-01 20:11:47)329
- 代码纠错:实现“7 - 4 有理数加法”的正确计算与输出(字节豆包 | 581点数解答 | 2025-12-11 11:57:09)55
- 成绩等级统计:20个60 - 100分成绩的等级数量揭秘(字节豆包 | 219点数解答 | 2025-04-09 10:20:32)212
- 培训机构学员成绩与年龄更新:C++ 代码实现(DeepSeek | 186点数解答 | 2025-12-16 18:04:31)48
- Python 处理培训机构学员培训后年龄与 NOIP 成绩提升情况(DeepSeek | 73点数解答 | 2025-12-16 18:05:20)52
- 培训机构学员成绩提升:C++代码实现年龄与NOIP成绩更新(DeepSeek | 178点数解答 | 2025-12-31 12:20:24)50
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)330
- C 语言编程:解决编程赛小组淘汰问题及代码优化建议(字节豆包 | 421点数解答 | 2024-12-28 16:57:18)193
- C语言解决编程赛小组淘汰问题:代码及三大改进建议(字节豆包 | 435点数解答 | 2024-12-28 16:57:20)296