#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct stu {
int id;
char name[9];
int grade;
}stu;
int comp1(const void*a, const void*b);
int comp2(const void*a, const void*b);
int comp3(const void*a, const void*b);
int main()
{
stu data[100000];
int n, c, i;
scanf("%d %d",&n,&c);
for (i = 0; i < n; i++)
scanf("%d %s %d", &data[i].id, data[i].name, &data[i].grade);
if (c == 1)
qsort(data, n, sizeof(stu), comp1);
if (c == 2)
qsort(data, n, sizeof(stu), comp2);
if (c == 3)
qsort(data, n, sizeof(stu), comp3);
for (i = 0; i < n; i++)
printf("%06d %s %d\n", data[i].id, data[i].name, data[i].grade);
return 0;
}
int comp1(const void*a, const void*b)
{
return (*(stu*)a).id - (*(stu*)b).id;
}
int comp2(const void*a, const void*b)
{
if(!strcmp((*(stu*)a).name, (*(stu*)b).name))
return (*(stu*)a).id - (*(stu*)b).id;
else return strcmp((*(stu*)a).name, (*(stu*)b).name);
}
int comp3(const void*a, const void*b)
{
if((*(stu*)a).grade== (*(stu*)b).grade)
return (*(stu*)a).id - (*(stu*)b).id;
else return (*(stu*)a).grade - (*(stu*)b).grade;
}
1028. List Sorting
最新推荐文章于 2017-02-28 17:11:06 发布