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;
}
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;
}
相关文章推荐
- android 蓝牙 通信 bluetooth
- Bzoj 1976: [BeiJing2010组队]能量魔方 Cube 最小割,最大流
- [Linux]Linux的chattr与lsattr命令详解
- 运行远程连接
- TextView部分字体变色
- 装饰模式(Decorator)
- 关于Spring中的<context:annotation-config/>配置
- 除了写代码,还有诗和远方
- C++ const提高函数的健壮性
- Java泛型方法
- Android 蓝牙开发基本流程
- linux signal
- hibernate criteria中Restrictions的用法
- c++实验2——项目1
- CSS盒子模型之内边
- .htaccess 301重定向代码
- UML类图几种关系复习整理
- redis持久化策略RDB和AOF
- 软件设计的感想
- git 安装及命令