1028. List Sorting (25)

 1 #include <vector>

 2 #include <stdio.h>

 3 #include <string.h>

 4 #include <algorithm>

 5 using namespace std;

 6 

 7 struct MyStruct

 8 {

 9 char ID[7];

10 char name[9];

11 int grade;

12 };

13 

14 int cmp1(MyStruct a,MyStruct b)

15 {

16 return (strcmp(a.ID,b.ID)<0);

17 }

18 

19 int cmp2(MyStruct a,MyStruct b)

20 {

21 if(strcmp(a.name,b.name)==0) return (strcmp(a.ID,b.ID)<0);

22 else return strcmp(a.name,b.name)<0;

23 }

24 

25 

26 int cmp3(MyStruct a,MyStruct b)

27 {

28 if(a.grade==b.grade) return (strcmp(a.ID,b.ID)<0);

29 else return a.grade<b.grade;

30 }

31 

32 

33 int main()

34 {

35 int n,c,i;

36 while(scanf("%d %d",&n,&c)!=EOF)

37 {

38 vector <MyStruct> vv;

39 for(i=0;i<n;i++)

40 {

41 MyStruct tem;

42 getchar();

43 scanf("%s %s %d",tem.ID,tem.name,&tem.grade);

44 vv.push_back(tem);

45 }

46 if(c==1)

47 sort(vv.begin(),vv.end(),cmp1);

48 if(c==2)

49 sort(vv.begin(),vv.end(),cmp2);

50 if(c==3)

51 sort(vv.begin(),vv.end(),cmp3);

52 

53 for(i=0;i<n;i++)

54 printf("%s %s %d\n",vv[i].ID,vv[i].name,vv[i].grade);

55 

56 }

57 return 0;

58 }

 

你可能感兴趣的:(list)