#include <algorithm> #include <cstdio> #include <iostream> using namespace std; struct student{ int id; int grade; }; bool Comp(student a, student b){ if (a.grade == b.grade) { return a.id < b.id; }else { return a.grade < b.grade; } }; int main() { int n; student stu[100]; while (scanf("%d",&n) != EOF) { for (int i = 0; i < n; ++i) { scanf("%d%d",&stu[i].id,&stu[i].grade); } sort(stu, stu+n,Comp);//stu+n很重要,不然结果不对,因为比较得时候会将其他位置初始化的0也参与比较 for (int j = 0; j < n; ++j) { printf("%d %d\n",stu[j].id,stu[j].grade); } } }