Problem Description
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即可。

关于sort和qsort函数的使用,建议参考:

https://www.cnblogs.com/AlvinZH/p/6784862.html?utm_source=itdadao&utm_medium=referral

https://blog.csdn.net/eapid/article/details/1552310

代码:

//
//  main.cpp
//  1862
//
//  Created by showlo on 2018/4/10.
//  Copyright © 2018年 showlo. All rights reserved.
//#include <stdio.h>
#include <algorithm>
#include <string>
using namespace std;
struct Student{int id;char name[10];int score;
}stu[100100];bool cmp1(Student a,Student b)
{return a.id<b.id;
}int cmp2(Student a,Student b)
{if (strcmp(a.name, b.name)<0)return 1;else if (strcmp(a.name, b.name)==0&&(a.id<b.id))return 1;elsereturn 0;
}bool cmp3(Student a,Student b)
{if (a.score!=b.score)return a.score<b.score;elsereturn a.id<b.id;
}int main() {int n,c,i,num;num=0;while (scanf("%d %d",&n,&c)!=EOF) {if (n==0)break;num++;for (i=0; i<n; i++)scanf("%d %s %d",&stu[i].id,stu[i].name,&stu[i].score);if (c==1)sort(stu,stu+n,cmp1);else if (c==2)sort(stu,stu+n,cmp2);else if (c==3)sort(stu,stu+n,cmp3);printf("Case %d:\n",num);for (i=0; i<n; i++) {printf("%06d %s %d\n",stu[i].id,stu[i].name,stu[i].score);}}return 0;
}

参考:https://www.cnblogs.com/love-sherry/p/6964985.html

【HDU】1862 EXCEL排序(结构体排序)相关推荐

  1. 结构体排序+sort()

    目录 1.结构体定义 2.sort排序 1.sort()函数的头文件和用法举例 2.sort()函数的参数说明 两个参数 三个参数 3.结构体排序 1.结构体定义 结构体(struct)是由一系列具有 ...

  2. C语言结构体和结构体排序

    结构体 结构体是一种构造数据类型 (构造数据类型包括:数组类型.结构体类型.共用体类型) 定义:把不同的数据组合成一个整体. 结构体的一般形式 struct [结构体名称]//struct是关键字 { ...

  3. C++结构体排序,优先队列,运算符重载

    文章目录 基本数据类型排序 结构体排序 比较函数 重载结构体运算符 优先队列 另外一种方法 优先队列基本知识 基本数据类型排序 #include <algorithm> #include ...

  4. Monkey and Banana HDU - 1069 [ 结构体排序+DP最长不上升子序列 ] 详细题解

    题解目录 1.题目 2.题意 3.思路 4.代码 1.题目 A group of researchers are designing an experiment to test the IQ of a ...

  5. qvector 结构体排序_C++结构体的应用_YCOJ

    结构体是一种自定义的东西,用struct来定义.在他里面, 可以装许多东西,比如int,string,char,bool等等等等. 如: struct a{ string name; int a; i ...

  6. 还是贪心(结构体排序)

    2128: 盾神与积木游戏 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 127 Solved: 39 [Submit][Status][Web Boa ...

  7. sort对结构体排序

    1.排序方法: sort(数组起始指针,数组尾指针,排序规则); 数组起始指针,数组尾指针是左闭右开 排序规则可以省略,也可以用系统的,也可以自己写 2.例子: int a[]={9,2,4,5,10 ...

  8. P1068 分数线划定 洛谷 (C++)(结构体排序)

    简单的结构体排序,代码如下 #include <iostream> #include <cstdio> #include <algorithm> #include ...

  9. C#中结构体排序方法(Array.sort() + ICompare)

    感觉C#比C++麻烦许多,资料也少,找了半天竟然没有找到一个能用的结构体排序. 这是待排序的结构体: public struct la{public int id;public int sb;}; 首 ...

最新文章

  1. 好书推荐系列之:你在为谁工作
  2. Dataset之Rotten Tomatoes:Rotten Tomatoes影评数据集简介、下载、使用方法之详细攻略
  3. 在 XML 中添加实体
  4. 说说大型高并发高负载网站的系统架构(ZT)
  5. java字符串 删除指定字符的那些事
  6. mysql日志输出到syslog_在chroot环境下将MySQL日志输出到syslog
  7. Pytorch:比较函数
  8. 代码测试意味着完全消灭了 Bug?
  9. iOS通过ASIHTTPRequest提交JSON数据
  10. python怎么连接linux服务器,python连接linux服务器
  11. Stacked Hourglass Networks简析
  12. windows ghost备份
  13. 计算机运行很卡很慢,PS打开很卡怎么办?电脑太老PS运行慢如何优化?
  14. 灵格斯(lingoes)词霸 + Acapela破解语音包(法语,德语,西班牙语,美国英语)
  15. 「MacTeX 小笔记」LaTeX 学习资料推荐篇
  16. 高速串行计算机扩展总线标准,高速串行计算机扩展总线标准Bosch Sensortec开发出BMP384...
  17. cad延伸命令怎么用_CAD拉伸怎么用
  18. eNSP实验STP简单配置及介绍
  19. TCP三次握手的原因
  20. uniapp隐藏页面顶部导航栏和手机系统顶部导航栏

热门文章

  1. matlab 分图 总标题,matlab中figure有多个图时,设定总标题的方法
  2. ★平衡法则在生活中的应用
  3. C++Primer(5th) Notes - 2.1 基本内置类型
  4. 幻核退出 “数字藏品有何用”阶段性无解
  5. 抖音广告多少种,这些你知道吗?
  6. NCBI中SRA数据下载
  7. el-table表格数据 中文 键值渲染
  8. 导出期刊对应格式的参考_中文参考文献怎么一键导出正确格式?写作必看!
  9. U-Net: Convolutional Networks for Biomedical Image Segmentation 解析
  10. 在命令提示符 “CMD” 中打印输出时间