酷代码 AI
菜单
服务商

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]

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