问题 C: EXCEL排序

题目描述

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

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

输入

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

输出

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

样例输入

4 1
000001 Zhao 75
000004 Qian 88
000003 Li 64
000002 Sun 90
4 2
000005 Zhao 95
000011 Zhao 75
000007 Qian 68
000006 Sun 85
4 3
000002 Qian 88
000015 Li 95
000012 Zhao 70
000009 Sun 95
0 3

样例输出

Case 1:
000001 Zhao 75
000002 Sun 90
000003 Li 64
000004 Qian 88
Case 2:
000007 Qian 68
000006 Sun 85
000005 Zhao 95
000011 Zhao 75
Case 3:
000012 Zhao 70
000002 Qian 88
000009 Sun 95
000015 Li 95

实现如下:

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
struct Student{int id;char name[10];int grade;
};
bool cmp1(Student a,Student b)
{return a.id<b.id;
}
bool cmp2(Student a,Student b)
{if(strcmp(a.name,b.name)!=0) return strcmp(a.name,b.name)<0;else return a.id<b.id;
}
bool cmp3(Student a,Student b)
{if(a.grade!=b.grade) return a.grade<b.grade;else return a.id<b.id;
}
int main()
{int N,C,testnum=0;while(scanf("%d %d",&N,&C)!=EOF){ if(N==0) break;else{Student stu[N];for(int i=0;i<N;i++){scanf("%d%s%d",&stu[i].id,stu[i].name,&stu[i].grade);}if(C==1) sort(stu,stu+N,cmp1);if(C==2) sort(stu,stu+N,cmp2);if(C==3) sort(stu,stu+N,cmp3);printf("Case %d:\n",++testnum);for(int i=0;i<N;i++){printf("%06d %s %d\n",stu[i].id,stu[i].name,stu[i].grade); } }}return 0;}

结果如下:

《算法笔记》4.1小节——算法初步-排序 问题 C: EXCEL排序相关推荐

  1. 机器学习算法笔记——P22 sklearn—LASSO算法

    机器学习算法笔记--P22 sklearn-LASSO算法 #!/usr/bin/env python # coding: utf-8# In[1]:import numpy as np from n ...

  2. 算法笔记:Kmeans聚类算法简介

    算法笔记:Kmeans聚类算法简介 1. Kmeans算法简介 2. Kmeans算法细节 3. Kmeans算法收敛性证明 4. Kmeans算法的变体 1. cosine距离变体 2. 点积距离版 ...

  3. 算法笔记习题 2-9小节

    算法笔记@Ada_Lake 算法笔记代码保留地~~~ 2.9小节--C/C++快速入门->补充 有关cin 和 cout cout 中控制 double型 的精确度 - 1. 加入#includ ...

  4. 算法笔记习题 7-1小节

    算法笔记@Ada_Lake 算法笔记代码保留地~~~ 7.1小节--提高篇->数据结构专题->栈的应用 首先讲了一下栈的定义.即栈就通俗而言即先进先出.每个栈都有一个栈顶指针来指向栈的最上 ...

  5. 算法笔记练习 4.1 排序 问题 C: EXCEL排序

    算法笔记练习 题解合集 题目链接 题目 题目描述 Excel可以对一组纪录按任意指定列排序.现请你编写程序实现类似功能. 对每个测试用例,首先输出1行"Case i:",其中 i ...

  6. 【算法笔记题解】《算法笔记知识点记录》第三章——入门模拟1——简单模拟

    如果喜欢大家还希望给个收藏点赞呀0.0 相关知识点大家没基础的还是要看一下的,链接: <算法笔记知识点记录>第三章--入门模拟 由于放原题的话文章实在太长,所以题多的话我只放思路和题解,大 ...

  7. 排序-如何修改EXCEL排序

    1.交换列 excel怎么整体移动行或列 excel如何快速交换两列的内容?[推荐] shift + 2.如何排序 excel时间排序怎么排 excel时间排序怎么排

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

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

  9. 【算法笔记5.6小节 -大整数运算 】问题 C: 浮点数加法

    题目描述 求2个浮点数相加的和 题目中输入输出中出现浮点数都有如下的形式: P1P2...Pi.Q1Q2...Qj 对于整数部分,P1P2...Pi是一个非负整数 对于小数部分,Qj不等于0 输入 对 ...

最新文章

  1. java初始化虚拟机错误_异常 - 虚拟机初始化错误 - Error occurred during initialization of VM...
  2. int main( int argc , char *argv[] , char *envp[] )中参数解说
  3. pytorch map低的增强训练
  4. MySQL 中的 FOUND_ROWS() 与 ROW_COUNT() 函数
  5. nextcloud php 版本,Nextcloud版本升级教程
  6. mysql的orm框架_Mysql-Sqlalchemy-ORM框架
  7. 5.3命名socket
  8. python输出输入的字符串_python笔记3-输出输入、字符串格式化
  9. C 语言 结构类型 结构
  10. Oracle与MySQL的几点区别
  11. 超详细|一篇搞定操作系统——处理器管理
  12. 微服务架构开发实战:什么是微服务的熔断机制和熔断的意义
  13. 【转帖】赤壁之战,曹操大败只因缺了Service Mesh
  14. java 采用MD5加密解密代码示例(不玩套路, 非标题党, 附带解密代码)
  15. 多文档程序 两个menu框架_汇总9款优秀的开源小程序UI框架
  16. 为什么要配置JAVA_HOME,有什么用?谁在用JAVA_HOME
  17. 广义相加模型(GAM)及R实现
  18. HTML5大前端全套教程(视频+源码+学习路线图)
  19. frp 供内网穿透服务的工具
  20. mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

热门文章

  1. 升级php到php7.4版本
  2. VS Code关闭Pylint警告或错误提示
  3. 《Web3.0中国峰会暨IPFS区块链分布式存储行业大会》开启
  4. Windows和ubuntu使用python脚本自动登录校园网
  5. 中国矿业大学C语言作业,中国矿业大学C语言程序设计实验报告第5章.docx
  6. 字节跳动面试官:最新Android面试题整理,终获offer
  7. ucf 转xdc_XDC约束技巧之I/O篇(下)
  8. 关于自动化提取word中表格信息的方法
  9. python-httpx 发送http2.0时代请求
  10. 使用CNN/ResNet实现自动调制识别(RML2018.01a)