文章

8

粉丝

125

获赞

112

访问

4.0k

头像
成绩排序2.0 题解:记录一下
P1159 清华大学上机题
发布于2025年2月15日 10:54
阅读数 383

#include <iostream>
#include <algorithm>
using namespace std;

typedef struct student {
    int p;
    int grade;
} stu;
bool compare(stu a, stu b) {
    if (a.grade == b.grade) {
        return a.p < b.p; // 成绩相同则按学号升序
    }
    return a.grade < b.grade; // 否则按成绩升序
}

int main() {
    int n;
    cin >> n;
    stu students[100];
    for (int i = 0; i < n; i++) {
        cin >> students[i].p >> students[i].grade;
    }
    
    // 只需一次排序
    sort(students, students + n, compare);
    
    // 输出结果
    for (int i = 0; i < n; i++) {
        cout << students[i].p << " " << students[i].grade << endl;
    }
  
}

登录查看完整内容


登录后发布评论

1 条评论
我毁了只小船
2025年3月9日 16:50

写得太棒了!点赞点赞

赞(0)