文章

6

粉丝

125

获赞

20

访问

1.7k

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

#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;
    }
  
}

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发