点击打开链接

Excel可以对一组纪录按任意指定列排序。现请你编写程序实现类似功能。

Input

测试输入包含若干测试用例。每个测试用例的第1行包含两个整数 N (<=100000) 和 C,其中 N 是纪录的条数,C 是指定排序的列号。以下有 N 
行,每行包含一条学生纪录。每条学生纪录由学号(6位数字,同组测试中没有重复的学号)、姓名(不超过8位且不包含空格的字符串)、成绩(闭区间[0, 100]内的整数)组成,每个项目间用1个空格隔开。当读到 N=0 时,全部输入结束,相应的结果不要输出。 

Output

对每个测试用例,首先输出1行“Case i:”,其中 i 是测试用例的编号(从1开始)。随后在 N 行中输出按要求排序后的结果,即:当 C=1 时,按学号递增排序;当 C=2时,按姓名的非递减字典序排序;当 C=3 
时,按成绩的非递减排序。当若干学生具有相同姓名或者相同成绩时,则按他们的学号递增排序。 

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)相关推荐

  1. HDU1862 EXCEL排序【排序】

    EXCEL排序 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...

  2. R7-9 模拟EXCEL排序 (25 分)

    R7-9 模拟EXCEL排序 (25 分) Excel可以对一组纪录按任意指定列排序.现请编写程序实现类似功能. 输入格式: 输入的第一行包含两个正整数N(≤105) 和C,其中N是纪录的条数,C是指 ...

  3. 题目4:EXCEL排序

    http://ac.jobdu.com/problem.php?cid=1040&pid=3 题目描述: Excel可以对一组纪录按任意指定列排序.现请你编写程序实现类似功能. 对每个测试用例 ...

  4. C++EXCEL排序

    C++EXCEL排序 Excel可以对一组纪录按任意指定列排序.现请你编写程序实现类似功能. Input 测试输入包含若干测试用例.每个测试用例的第1行包含两个整数 N (<=100000) 和 ...

  5. 1926 Problem C EXCEL排序

    问题 C: EXCEL排序 时间限制: 1 Sec  内存限制: 32 MB 题目描述 Excel可以对一组纪录按任意指定列排序.现请你编写程序实现类似功能. 对每个测试用例,首先输出1行" ...

  6. 7-2 模拟EXCEL排序 (25分) PTA

    7-2 模拟EXCEL排序 (25分) Excel可以对一组纪录按任意指定列排序.现请编写程序实现类似功能. 输入格式: 输入的第一行包含两个正整数N(≤10 ​5 ​​ ) 和C,其中N是纪录的条数 ...

  7. 《算法笔记》4.1小节——算法初步-排序 问题 C: EXCEL排序

    问题 C: EXCEL排序 题目描述 Excel可以对一组纪录按任意指定列排序.现请你编写程序实现类似功能. 对每个测试用例,首先输出1行"Case i:",其中 i 是测试用例的 ...

  8. 问题 C: EXCEL排序 作业比赛编号 : 100000581 - 《算法笔记》4.1小节——算法初步->排序 Codeup

    问题 C: EXCEL排序 作业比赛编号 : 100000581 - <算法笔记>4.1小节--算法初步->排序 Codeup 注意: 1.姓名的字符长度为6,但是定义数组时,应为n ...

  9. 降序排序_新手需要掌握的Excel排序功能都在这儿了!

    排序,真的是一个很基础的功能. 如果还不知道排序的话,可能仅仅是用Excel来做数据录入了. 但是排序真的又不是一个简单的功能,能全部了解其中细节的人真的不多,今天分享关于排序的内容,不讲太深,仅仅是 ...

  10. Python编程基础:第五十四节 排序Sort

    第五十四节 排序Sort 前言 实践 前言 我们常需要对列表.元组中的元素进行排序,例如按照字母表排列学生的名称.这里就需要用到列表的sort()方法,以及sorted()函数. 实践 我们先来构建一 ...

最新文章

  1. poj3169(差分约束+SPFA)
  2. ORB-SLAM(八)ORBmatcher 特征匹配
  3. 3月12日云栖精选夜读 | 安全多方计算新突破!阿里首次实现“公开可验证” 的安全方案...
  4. 统计学习方法第五章作业:ID3/C4.5算法分类决策树、平方误差二叉回归树代码实现
  5. react全局状态管理_react 状态管理的复杂度来源
  6. 只收藏不点赞的人是什么心理???
  7. 山寨威武 仿冒Xoom先于行货获得Android 4.0升级
  8. DOM学习之路--Mr.Ember
  9. angular文件上传php,Angular2里获取(input file)上传文件的内容的方法
  10. web mis系统构建
  11. linux救援模式使用yum,linux学习笔记-第二课-yum,救援模式,单用户模式,运行级别...
  12. Machine Learning ——Homework3
  13. matlab的基本使用
  14. 用一个键盘和鼠标控制两台双显示器计算机的最佳方法是什么?
  15. 用手机当电脑摄像头——Droidcam
  16. 在 Windows 中为高级用户配置 IPv6 的指南
  17. 微信提醒对方账号异常应该怎么办
  18. 生物信息电脑运行环境搭建-Python R Linux
  19. 从双钻模型看产品规划
  20. HTTP解析库http-parser简介及使用

热门文章

  1. 计算机网络子网划分工具,子网计算工具(子网划分工具)
  2. 网线插座之一种的内部构造猜测
  3. 2021-2022学年广州市南武中学七年级第一学期期末模拟英语试题
  4. Python类的继承、重写和私有
  5. Java做打印服务打印A4
  6. CUDA:核函数未执行,错误检查
  7. 电力检测 - 绝缘子串识别
  8. 以DxR算法思想为基准设计出的路由项定位结构图解
  9. jq构造的ajax按了按钮没反应,JQ动态生成节点绑定事件无效问题
  10. Tomcat 控制台 乱码 淇℃伅