EXCEL排序 (sort)
点击打开链接
Input
行,每行包含一条学生纪录。每条学生纪录由学号(6位数字,同组测试中没有重复的学号)、姓名(不超过8位且不包含空格的字符串)、成绩(闭区间[0, 100]内的整数)组成,每个项目间用1个空格隔开。当读到 N=0 时,全部输入结束,相应的结果不要输出。
Output
时,按成绩的非递减排序。当若干学生具有相同姓名或者相同成绩时,则按他们的学号递增排序。
Sample Input
3 1 000007 James 85 000010 Amy 90 000001 Zoe 60 4 2 000007 James 85 000010 Amy 90 000001 Zoe 60 000002 James 98 4 3 000007 James 85 000010 Amy 90 000001 Zoe 60 000002 James 90 0 0
Sample Output
Case 1: 000001 Zoe 60 000007 James 85 000010 Amy 90 Case 2: 000010 Amy 90 000002 James 98 000007 James 85 000001 Zoe 60 Case 3: 000001 Zoe 60 000007 James 85 000002 James 90 000010 Amy 90
题解:sort排序水题,注意cmp写法即可。
代码:
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;struct Data{char id[10];//学号int score;//成绩char name[10];//名字
}data[100100];bool cmp1(Data a,Data b){int t = strcmp(a.id , b.id); //前面的大,返回1;相等返回0;前面的小,返回-1 if (t == -1)return true;elsereturn false;
}bool cmp2(Data a,Data b){if (strcmp(a.name , b.name)){int t = strcmp(a.name , b.name); //前面的大,返回1;相等返回0;前面的小,返回-1 if (t == -1)return true;elsereturn false;}else{int t = strcmp(a.id , b.id); //前面的大,返回1;相等返回0;前面的小,返回-1 if (t == -1)return true;elsereturn false;}
}bool cmp3(Data a,Data b){if(a.score!=b.score)return a.score<b.score;else{int t = strcmp(a.id , b.id); //前面的大,返回1;相等返回0;前面的小,返回-1 if (t == -1)return true;elsereturn false;}}int main(){int n,m;int k=1;while(cin>>n>>m&&n&&m){for(int i=0;i<n;i++)cin>>data[i].id>>data[i].name>>data[i].score;if(m==1){sort(data,data+n,cmp1);cout<<"Case "<<k++<<":"<<endl;for(int i=0;i<n;i++)cout<<data[i].id<<" "<<data[i].name<<" "<<data[i].score<<endl;}else if(m==2){sort(data,data+n,cmp2);cout<<"Case "<<k++<<":"<<endl;for(int i=0;i<n;i++)cout<<data[i].id<<" "<<data[i].name<<" "<<data[i].score<<endl; }else{sort(data,data+n,cmp3);cout<<"Case "<<k++<<":"<<endl;for(int i=0;i<n;i++)cout<<data[i].id<<" "<<data[i].name<<" "<<data[i].score<<endl; }}return 0;
}
EXCEL排序 (sort)相关推荐
- HDU1862 EXCEL排序【排序】
EXCEL排序 Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- R7-9 模拟EXCEL排序 (25 分)
R7-9 模拟EXCEL排序 (25 分) Excel可以对一组纪录按任意指定列排序.现请编写程序实现类似功能. 输入格式: 输入的第一行包含两个正整数N(≤105) 和C,其中N是纪录的条数,C是指 ...
- 题目4:EXCEL排序
http://ac.jobdu.com/problem.php?cid=1040&pid=3 题目描述: Excel可以对一组纪录按任意指定列排序.现请你编写程序实现类似功能. 对每个测试用例 ...
- C++EXCEL排序
C++EXCEL排序 Excel可以对一组纪录按任意指定列排序.现请你编写程序实现类似功能. Input 测试输入包含若干测试用例.每个测试用例的第1行包含两个整数 N (<=100000) 和 ...
- 1926 Problem C EXCEL排序
问题 C: EXCEL排序 时间限制: 1 Sec 内存限制: 32 MB 题目描述 Excel可以对一组纪录按任意指定列排序.现请你编写程序实现类似功能. 对每个测试用例,首先输出1行" ...
- 7-2 模拟EXCEL排序 (25分) PTA
7-2 模拟EXCEL排序 (25分) Excel可以对一组纪录按任意指定列排序.现请编写程序实现类似功能. 输入格式: 输入的第一行包含两个正整数N(≤10 5 ) 和C,其中N是纪录的条数 ...
- 《算法笔记》4.1小节——算法初步-排序 问题 C: EXCEL排序
问题 C: EXCEL排序 题目描述 Excel可以对一组纪录按任意指定列排序.现请你编写程序实现类似功能. 对每个测试用例,首先输出1行"Case i:",其中 i 是测试用例的 ...
- 问题 C: EXCEL排序 作业比赛编号 : 100000581 - 《算法笔记》4.1小节——算法初步->排序 Codeup
问题 C: EXCEL排序 作业比赛编号 : 100000581 - <算法笔记>4.1小节--算法初步->排序 Codeup 注意: 1.姓名的字符长度为6,但是定义数组时,应为n ...
- 降序排序_新手需要掌握的Excel排序功能都在这儿了!
排序,真的是一个很基础的功能. 如果还不知道排序的话,可能仅仅是用Excel来做数据录入了. 但是排序真的又不是一个简单的功能,能全部了解其中细节的人真的不多,今天分享关于排序的内容,不讲太深,仅仅是 ...
- Python编程基础:第五十四节 排序Sort
第五十四节 排序Sort 前言 实践 前言 我们常需要对列表.元组中的元素进行排序,例如按照字母表排列学生的名称.这里就需要用到列表的sort()方法,以及sorted()函数. 实践 我们先来构建一 ...
最新文章
- poj3169(差分约束+SPFA)
- ORB-SLAM(八)ORBmatcher 特征匹配
- 3月12日云栖精选夜读 | 安全多方计算新突破!阿里首次实现“公开可验证” 的安全方案...
- 统计学习方法第五章作业:ID3/C4.5算法分类决策树、平方误差二叉回归树代码实现
- react全局状态管理_react 状态管理的复杂度来源
- 只收藏不点赞的人是什么心理???
- 山寨威武 仿冒Xoom先于行货获得Android 4.0升级
- DOM学习之路--Mr.Ember
- angular文件上传php,Angular2里获取(input file)上传文件的内容的方法
- web mis系统构建
- linux救援模式使用yum,linux学习笔记-第二课-yum,救援模式,单用户模式,运行级别...
- Machine Learning ——Homework3
- matlab的基本使用
- 用一个键盘和鼠标控制两台双显示器计算机的最佳方法是什么?
- 用手机当电脑摄像头——Droidcam
- 在 Windows 中为高级用户配置 IPv6 的指南
- 微信提醒对方账号异常应该怎么办
- 生物信息电脑运行环境搭建-Python R Linux
- 从双钻模型看产品规划
- HTTP解析库http-parser简介及使用