题解 | #qsort解决成绩排序#
成绩排序
https://www.nowcoder.com/practice/8e400fd9905747e4acc2aeed7240978b
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
typedef struct{
char name[20];
int grade;
} kk;
int cmp1(const void*_a,const void*_b)
{
kk *a = (kk*)_a;
kk *b = (kk*)_b;
return (*a).grade - (*b).grade;
}
int cmp0(const void*_a,const void*_b)
{
kk *a = (kk*)_a;
kk *b = (kk*)_b;
return (*b).grade - (*a).grade;
}
int main() {
int way = 0;
int num = 0;
kk data[200];
while (~scanf("%d",&num)) {
scanf("%d",&way);
for (int i = 0; i < num ; i++) {
scanf("%s %d",data[i].name,&data[i].grade);
}
if(way == 1)
qsort(data, num, sizeof(kk), cmp1);
else if(way == 0)
qsort(data, num, sizeof(kk), cmp0);
for (int i = 0; i < num ; i++) {
printf("%s %d\n",data[i].name,data[i].grade);
}
}
}