1028.List Sorting
来源:互联网 发布:淘宝手机客户端装修 编辑:程序博客网 时间:2024/06/08 05:15
【题意】
给出一些学生的ID、姓名、等级,按照某一列排序并输出结果。
【思路】
按题意直接码
【注意点】
用string和cin会超时,得用char*和scanf
#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <vector>#include <algorithm>using namespace std;typedef struct{int id;char name[9];int grade;}record;bool cmpId(record r1, record r2){return r1.id<r2.id;}bool cmpName(record r1, record r2){if(strcmp(r1.name,r2.name)==0){return cmpId(r1,r2);}else if(strcmp(r1.name,r2.name)<0){return 1;}else{return 0;}}bool cmpGrade(record r1, record r2){if(r1.grade==r2.grade){return cmpId(r1,r2);}else{return r1.grade<r2.grade;}}int main(int argc, char const *argv[]){int n,c;vector<record> records;record tmp;cin >> n >> c;while(n--){scanf("%d%s%d", &tmp.id, tmp.name, &tmp.grade);records.push_back(tmp);}switch(c){case 1:sort(records.begin(),records.end(),cmpId);break;case 2:sort(records.begin(),records.end(),cmpName);break;case 3:sort(records.begin(),records.end(),cmpGrade);break;default:break;}for (vector<record>::iterator it=records.begin(); it!=records.end(); it++){printf("%06d %s %d\n", (*it).id, (*it).name, (*it).grade);}system("pause");return 0;}
0 0
- 1028. List Sorting (25)
- 1028. List Sorting
- 1028. List Sorting (25)
- 1028. List Sorting (25)
- PAT 1028. List Sorting
- 1028. List Sorting
- 1028. List Sorting
- 1028. List Sorting (25)
- 1028. List Sorting (25)
- 1028. List Sorting (25)
- 1028. List Sorting (25)
- 1028.List Sorting
- 1028. List Sorting (25)
- 1028. List Sorting (25)
- 1028. List Sorting
- 1028. List Sorting (25)
- 1028. List Sorting (25)
- 1028. List Sorting (25)
- 1156. Binary tree 二叉树找根方法
- 具有返回值得函数遇到ruturn
- 1027.Colors in Mars
- CentOS 7 系统盘符挂载NTFS分区
- APP启动页,判断是否是第一次打开,带滑动页动画
- 1028.List Sorting
- Android Studio使用git(以oschina git为例)
- 《OC疯狂讲义》笔记(三)
- 腾讯,创新工场,淘宝面试题
- ENVI自带的非监督分类测试情况
- 关于Xcode6与Xcode5之间的细节差别(Precompile Prefix Header)
- 一个操作cvs格式的c++类
- 1029.Median
- 网络编程 MIME协议