您的位置:首页 > 其它

excel排序

2016-03-24 14:12 218 查看
有时候思路可能已经有了,但是实现的方式却会让你的代码和别人的差别很大。

sort函数还是要多加练习,要包含头文件algorithm。

#include <iostream>

#include <algorithm>

#include <string.h>

using namespace std;

struct record{

char id[10];

char name[10];

int grade;

}r[100005];

bool cmpbyid(record a,record b){

return strcmp(a.id,b.id)<0;

}

bool cmpbyname(record a,record b){

if(!strcmp(a.name,b.name))

return strcmp(a.id,b.id)<0;

else

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

}

bool cmpbygrade(record a,record b){

if(a.grade==b.grade)

return strcmp(a.id,b.id)<0;

else

return (a.grade-b.grade)<0;

}

int main()

{

int N,C;

int casenum=0;

while(cin>>N>>C&&N!=0){

casenum++;

for(int i=0;i<N;i++)

cin>>r[i].id>>r[i].name>>r[i].grade;

if(C==1)

sort(r,r+N,cmpbyid);

else if(C==2)

sort(r,r+N,cmpbyname);

else

sort(r,r+N,cmpbygrade);

cout<<"Case "<<casenum<<":"<<endl;

for(int i=0;i<N;i++)

cout<<r[i].id<<" "<<r[i].name<<" "<<r[i].grade<<endl;

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: