排序题
这道题不难,不过学到了不少实用性东西:
-sort(vec.begin(),vec.end(),comparsion);
-strcmp(const *char a,const *char b);(相当于a-b);
-结构体;
-printf("d%s",...,..).
#include <iostream> #include <string.h> #include <vector> #include <algorithm> #include <stdio.h> using namespace std; int m,n; typedef struct Student{ int id; char name[10]; int grade; }; bool comparison(Student a,Student b){ if(n==1){ return a.id<b.id; }else if(n==2){ if(strcmp(a.name,b.name)==0) return a.id<b.id; else return strcmp(a.name,b.name)<0; }else{ if(a.grade==b.grade) return a.id<b.id; else return a.grade<b.grade; } } int main() { int i; cin>>m>>n; vector<Student> stu(m); for(i=0;i<m;i++) scanf("%d%s%d",&stu[i].id,&stu[i].name,&stu[i].grade); sort(stu.begin(),stu.end(),comparison); for(i=0;i<m;i++) printf("d %s %d\n",stu[i].id,stu[i].name,stu[i].grade); return 0; }