题解 | 成绩排序
成绩排序
https://www.nowcoder.com/practice/8e400fd9905747e4acc2aeed7240978b
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
char name[21];
int score;
}stu;
int cmpup(const void* a,const void* b)
{
return ((stu *)a)->score-((stu *)b)->score;
}
int cmpdown(const void* a,const void* b)
{
return ((stu *)b)->score-((stu *)a)->score;
}
int main()
{
stu s[201]; //定义结构体数组保存
int op=0,n;
scanf("%d\n%d",&n,&op);
for(int i=0;i<n;i++)
scanf("%s %d\n",s[i].name,&s[i].score);//输入
if(op==1)
qsort(s,n,sizeof(s[0]),cmpup);
else
qsort(s,n,sizeof(s[0]),cmpdown); //排序
for(int i=0;i<n;i++) //输出
printf("%s %d\n",s[i].name,s[i].score);
return 0;
}