FZ信息学比赛学生成绩排序及年级统计的C++实现
以下是实现该功能的C++代码: ```cpp #include <iostream> #include <vector> #include <algorithm> // 定义学生结构体,包含成绩和年级 struct Student { int score; int grade; // 重载小于运算符,用于排序 bool operator<(const Student& other) const { if (score != other.score) { return score > other.score; // 成绩从高到低排序 } return grade < other.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()); // 输出每个排名的学生前面有多少个学生年级低于他 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. **输入处理**:读取学生人数`N`,并依次读取每个学生的成绩和年级,存储在`students`向量中。 3. **排序**:使用`std::sort`函数对`students`向量进行排序,排序规则是成绩从高到低,成绩相同则年级从低到高。 4. **输出处理**:遍历排序后的学生列表,对于每个学生,统计其前面年级低于他的学生数量,并输出该数量。 ######[AI问答 | 520点数解答 | 2026-02-27 22:22:03]
- 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++ 实现超清晰大学管理系统:涵盖学生、职工、教师、助教全角色(讯飞星火 | 1014点数解答 | 2024-05-29 18:22:53)345
- C++实现:包含学生、职工、教师和助教的大学管理系统(GPT | 1431点数解答 | 2024-05-29 18:23:32)341