#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct record
{
int num;
char name[10];
int score;
}s[100001];
int comp1(const void*a,const void*b)
{
struct record *p=(struct record*)a;
struct record *q=(struct record*)b;
return p->num-q->num;
}
int comp2(const void*a,const void*b)
{
struct record *p=(struct record*)a;
struct record *q=(struct record*)b;
if(strcmp(p->name,q->name))
return strcmp(p->name,q->name);
else return p->num-q->num;
}
int comp3(const void*a,const void*b)
{
struct record *p=(struct record*)a;
struct record *q=(struct record*)b;
if(p->score!=q->score)
return p->score-q->score;
else return p->num-q->num;
}
int main()
{
int n,c,i;
scanf("%d %d",&n,&c);
for(i=0;i<n;i++)
{
scanf("%d %s %d",&s[i].num,s[i].name,&s[i].score);
}
switch(c)
{
case 1:qsort(s,n,sizeof(struct record),comp1);break;
case 2:qsort(s,n,sizeof(struct record),comp2);break;
case 3:qsort(s,n,sizeof(struct record),comp3);break;
}
for(i=0;i<n;i++)
{
printf("%06d %s %d\n",s[i].num,s[i].name,s[i].score);
}
return 0;
}
1028. List Sorting (25)
最新推荐文章于 2023-07-17 19:25:43 发布