代码:
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <fstream>
using namespace std;
const int maxn = 100010;
struct Stu{
int id;
char name[7];
int score;
}stu[maxn];
bool cmp1(Stu a, Stu b){
return a.id < b.id;
}
bool cmp2(Stu a, Stu b){
int tmp = strcmp(a.name, b.name);
if(tmp != 0){
return tmp < 0; //字典序小者在前
}
else return a.id < b.id;
}
bool cmp3(Stu a, Stu b){
if(a.score != b.score){
return a.score < b.score;
}
else return a.id < b.id;
}
int main(){
// freopen("a.txt", "r", stdin);
int n, c;
while(scanf("%d %d", &n, &c) != EOF){
if(n == 0){
break;
}
for(int i = 0; i < n; ++i){
scanf("%d %s %d", &stu[i].id, stu[i].name, &stu[i].score);
}
switch (c) {
case 1:
sort(stu, stu + n, cmp1);
break;
case 2:
sort(stu, stu + n, cmp2);
break;
case 3:
sort(stu, stu + n, cmp3);
break;
}
printf("Case:\n");
for(int i = 0; i < n; ++i){
printf("%06d %s %d\n", stu[i].id, stu[i].name, stu[i].score);
}
}
return 0;
}
注:strcmp