题目链接

题目描述:
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:”。随后在 N 行中输出按要求排序后的结果,即:当 C=1 时,按学号递增排序;当 C=2时,按姓名的非递减字典序排序;当 C=3 时,按成绩的非递减排序。当若干学生具有相同姓名或者相同成绩时,则按他们的学号递增排序。

思路:分情况进行排序即可

#include<iostream>
#include<algorithm>
#include<string>
#include<string.h>
using namespace std;
struct s {int number;char name[9];int sore;
};
struct s student[100000];
bool cmp1(s a, s b) {return a.number < b.number;
}
bool cmp2(s a, s b) {int flag = strcmp(a.name, b.name);if (flag == 0)return a.number < b.number;else return flag < 0;
}
bool cmp3(s a, s b) {if (a.sore == b.sore) return a.number < b.number;else return a.sore < b.sore;
}
int main() {int n, C;while (cin >> n) {if (n == 0) break;cin >> C;for (int i = 0; i < n; i++) cin >> student[i].number >> student[i].name >> student[i].sore;if (C == 1) {sort(student, student + n, cmp1);}else if (C == 2) {sort(student, student + n, cmp2);}else if (C == 3) {sort(student, student + n, cmp3);}cout << "Case:" << endl;for (int i = 0; i < n; i++) {printf("%06d %s %d\n", student[i].number, student[i].name, student[i].sore);}}return 0;
}

Excel排序 九度教程第4题相关推荐

  1. Piggy-Bank - 九度教程第 102 题

    Piggy-Bank - 九度教程第 102 题 题目 时间限制:1 秒 内存限制:32 兆 特殊判题:否 题目描述: Before ACM can do anything, a budget mus ...

  2. 质因数的个数 - 九度教程第54题

    质因数的个数 - 九度教程第54题 题目 时间限制:1 秒 内存限制:32 兆 特殊判题:否 题目描述: 求正整数 N(N>1)的质因数的个数. 相同的质因数需要重复计算.如 120=22235 ...

  3. 不容易系列之一(九度教程第 94 题)

    不容易系列之一(九度教程第 94 题) 时间限制:1 秒 内存限制:128 兆 特殊判题:否 1.题目描述: 大家常常感慨,要做好一件事情真的不容易,确实,失败比成功容易多了!做好"一件&q ...

  4. 成绩排序 九度教程c语言,九度OJ 1089 数字反转

    题目分析: 使用队列存放每一位的数字,然后输出并计算得到反转数值,从而实现数字反转. 源代码: [cpp] #include #include using namespace std; int mai ...

  5. 数制转换 九度教程第44题 a进制数转换为b进制数 不同进制之间相互转换

    题目链接 解题思路: 1.将a进制数转换成十进制数: 2.将十进制数转换成b进制数: 3.使用do while 循环,可以确保即使被转换数字是 0 ,程序也能正常工作. AC代码: #include& ...

  6. 九度oj 第1题 二维数组中的查找 何海涛:《剑指Offer:名企面试官精讲典型编程题》

    一.题目信息 题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 输入: ...

  7. 动态规划 背包问题小结 0-1背包(采药 九度第101题) 完全背包(Piggy-Bank POJ 1384) 多重背包(珍惜现在,感恩生活 九度第103题)

    本小结介绍0-1背包.完全背包以及多重背包问题 记忆要点: 0-1背包:二维数组情况下,顺序遍历体积或者倒序均可以                降维情况下需倒序遍历体积 完全背包:数组降维+顺序遍历 ...

  8. 九度题库(所有题目整理,适合计算机考研和面试的人用)

    本来搜一道面试题,找到叫九度题库的地方,发现里面的题目都比较基础,很适合当面试题来练习. 于是,闲得蛋疼,把所有题目给爬下来了,并整理成markdown格式,然后export成pdf,方便大家离线阅读 ...

  9. Excel 数据透视表教程大全之 02 添加字段、设置数据格式应用货币模式、按值进行排序(教程含样本数据)

    Excel 数据透视表教程大全之 02 添加字段.设置数据格 什么是数据透视表? 您可以将数据透视表视为报告.但是,与静态报表不同,数据透视表提供数据的交互式视图.只需很少的努力(并且没有公式),您就 ...

最新文章

  1. 相机标定 matlab opencv ROS三种方法标定步骤(3)
  2. Spring 如何初始化泛型类实例
  3. IDEA_Spring Data JPA有关报错Cannot resolve table 'XXX'
  4. 博士申请 | ​英属哥伦比亚大学李霄霄助理教授招收全奖博士生、硕士生
  5. vue中父子组件先后渲染_vue父子组件传值(子传父,非父子组件传值)
  6. 【BUG记录】百度人脸识别采集黑屏
  7. 数据库语言 数据查询_使用这种简单的查询语言开始查询数据
  8. css bug 集2
  9. RHEL7 -- 修改主机名
  10. 用python怎么读_python怎么读sql数据?
  11. 我的地盘我做主—玩转Python函数和变量
  12. 【图像配准】基于matlab互信息图像配准【含Matlab源码 1210期】
  13. 五款APP让你告别拖延症!余生愿你活成自己想要的样子
  14. php判断字符串是否为空的方法
  15. 信噪比db换算_DB和dBm有哪些区别 DB和dBm区别介绍【图文】
  16. Java中List使用Comparator.comparing进行排序
  17. deprecate node-sass@4.9.0 › request@~2.79.0 request has been deprecated, see https://github.com
  18. 积分球测试软件无法创建新文档,积分球测试光通量不准确的解决方案
  19. POJ3349-Snowflake Snow Snowflakes
  20. C/C++ 如何设计框架

热门文章

  1. 详细介绍知识图谱技术
  2. 知识图谱入门 (一) 知识图谱与语义技术概览
  3. Verilog基础知识(异步FIFO)
  4. Linux程序设计 读笔2 Shell脚本
  5. 【ROS入门21讲二刷古月居】学习笔记3 发布者Publisher的编程实现
  6. simulink中detailed thyristor和thyristor的区别(针对latching current和turn-off time的对比仿真)
  7. 华硕计算机用户名默认,华硕路由器设置方法_华硕(ASUS)路由器怎么设置?-192路由网...
  8. java实现FTP协议:wireshark抓包解析
  9. android百分比布局失效,Android Studio不能添加百分比布局的依赖,书和AS不一样,老报错,怎么弄?急~~~...
  10. 无线路由实战(一):增强无线wifi信号和加速wifi的十一种方法