题解 | 成绩排序
#include <stdio.h> typedef struct stu{ int id; int grade; }std; int cmp(const void *p1,const void *p2){ if(((std*)p1)->grade!=((std*)p2)->grade) return ((std*)p1)->grade-((std*)p2)->grade; else return ((std*)p1)->id-((std*)p2)->id; } int main() { int n; std s[1000]; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d%d",&s[i].id,&s[i].grade); } qsort(s,n,sizeof(std),cmp); for(int i=0;i<n;i++) printf("%d %d\n",s[i].id,s[i].grade); return 0; }