题解 | #成绩排序#
成绩排序
https://www.nowcoder.com/practice/3f27a0a5a59643a8abf0140b9a8cf1f7
#include <stdio.h>
#include <stdlib.h>
struct Stu{
int num;
int score;
}stu[101];
int cmp(const void *a,const void *b){
if(((struct Stu*)a)->score==((struct Stu*)b)->score){
return ((struct Stu*)a)->num-((struct Stu*)b)->num;
}
else{
return ((struct Stu*)a)->score-((struct Stu*)b)->score;
}
}
int main() {
int numsSize,i,score;
scanf("%d",&numsSize);
while(scanf("%d %d",&i,&score)!=EOF){
stu[i].num=i;
stu[i].score=score;
}
qsort(stu, numsSize+1, sizeof(stu[0]), cmp);
for(int j=1;j<=numsSize;j++){
printf("%d %d\n",stu[j].num,stu[j].score);
}
return 0;
}
