《算法笔记》4.1小节——算法初步-排序 问题 C: EXCEL排序
问题 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排序相关推荐
- 机器学习算法笔记——P22 sklearn—LASSO算法
机器学习算法笔记--P22 sklearn-LASSO算法 #!/usr/bin/env python # coding: utf-8# In[1]:import numpy as np from n ...
- 算法笔记:Kmeans聚类算法简介
算法笔记:Kmeans聚类算法简介 1. Kmeans算法简介 2. Kmeans算法细节 3. Kmeans算法收敛性证明 4. Kmeans算法的变体 1. cosine距离变体 2. 点积距离版 ...
- 算法笔记习题 2-9小节
算法笔记@Ada_Lake 算法笔记代码保留地~~~ 2.9小节--C/C++快速入门->补充 有关cin 和 cout cout 中控制 double型 的精确度 - 1. 加入#includ ...
- 算法笔记习题 7-1小节
算法笔记@Ada_Lake 算法笔记代码保留地~~~ 7.1小节--提高篇->数据结构专题->栈的应用 首先讲了一下栈的定义.即栈就通俗而言即先进先出.每个栈都有一个栈顶指针来指向栈的最上 ...
- 算法笔记练习 4.1 排序 问题 C: EXCEL排序
算法笔记练习 题解合集 题目链接 题目 题目描述 Excel可以对一组纪录按任意指定列排序.现请你编写程序实现类似功能. 对每个测试用例,首先输出1行"Case i:",其中 i ...
- 【算法笔记题解】《算法笔记知识点记录》第三章——入门模拟1——简单模拟
如果喜欢大家还希望给个收藏点赞呀0.0 相关知识点大家没基础的还是要看一下的,链接: <算法笔记知识点记录>第三章--入门模拟 由于放原题的话文章实在太长,所以题多的话我只放思路和题解,大 ...
- 排序-如何修改EXCEL排序
1.交换列 excel怎么整体移动行或列 excel如何快速交换两列的内容?[推荐] shift + 2.如何排序 excel时间排序怎么排 excel时间排序怎么排
- 《算法笔记》4.1小节——算法初步->排序 问题 C: EXCEL排序
题目描述 Excel可以对一组纪录按任意指定列排序.现请你编写程序实现类似功能. 对每个测试用例,首先输出1行"Case i:",其中 i 是测试用例的编号(从1开始).随后在 N ...
- 【算法笔记5.6小节 -大整数运算 】问题 C: 浮点数加法
题目描述 求2个浮点数相加的和 题目中输入输出中出现浮点数都有如下的形式: P1P2...Pi.Q1Q2...Qj 对于整数部分,P1P2...Pi是一个非负整数 对于小数部分,Qj不等于0 输入 对 ...
最新文章
- java初始化虚拟机错误_异常 - 虚拟机初始化错误 - Error occurred during initialization of VM...
- int main( int argc , char *argv[] , char *envp[] )中参数解说
- pytorch map低的增强训练
- MySQL 中的 FOUND_ROWS() 与 ROW_COUNT() 函数
- nextcloud php 版本,Nextcloud版本升级教程
- mysql的orm框架_Mysql-Sqlalchemy-ORM框架
- 5.3命名socket
- python输出输入的字符串_python笔记3-输出输入、字符串格式化
- C 语言 结构类型 结构
- Oracle与MySQL的几点区别
- 超详细|一篇搞定操作系统——处理器管理
- 微服务架构开发实战:什么是微服务的熔断机制和熔断的意义
- 【转帖】赤壁之战,曹操大败只因缺了Service Mesh
- java 采用MD5加密解密代码示例(不玩套路, 非标题党, 附带解密代码)
- 多文档程序 两个menu框架_汇总9款优秀的开源小程序UI框架
- 为什么要配置JAVA_HOME,有什么用?谁在用JAVA_HOME
- 广义相加模型(GAM)及R实现
- HTML5大前端全套教程(视频+源码+学习路线图)
- frp 供内网穿透服务的工具
- mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
热门文章
- 升级php到php7.4版本
- VS Code关闭Pylint警告或错误提示
- 《Web3.0中国峰会暨IPFS区块链分布式存储行业大会》开启
- Windows和ubuntu使用python脚本自动登录校园网
- 中国矿业大学C语言作业,中国矿业大学C语言程序设计实验报告第5章.docx
- 字节跳动面试官:最新Android面试题整理,终获offer
- ucf 转xdc_XDC约束技巧之I/O篇(下)
- 关于自动化提取word中表格信息的方法
- python-httpx 发送http2.0时代请求
- 使用CNN/ResNet实现自动调制识别(RML2018.01a)