酷代码 AI
菜单
服务商

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]

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