模拟EXCEL排序

7-78 模拟EXCEL排序

分数 25

全屏浏览题目

作者 陈越

单位 浙江大学

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

输入格式:

输入的第一行包含两个正整数N(≤105) 和C,其中N是纪录的条数,C是指定排序的列号。之后有 N行,每行包含一条学生纪录。每条学生纪录由学号(6位数字,保证没有重复的学号)、姓名(不超过8位且不包含空格的字符串)、成绩([0, 100]内的整数)组成,相邻属性用1个空格隔开。

输出格式:

在N行中输出按要求排序后的结果,即:当C=1时,按学号递增排序;当C=2时,按姓名的非递减字典序排序;当C=3时,按成绩的非递减排序。当若干学生具有相同姓名或者相同成绩时,则按他们的学号递增排序。

输入样例:

3 1
000007 James 85
000010 Amy 90
000001 Zoe 60

输出样例:

000001 Zoe 60
000007 James 85
000010 Amy 90

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

测试点分享:

Case 1:
输入
3 1
000007 James 85
000010 Amy 90
000001 Zoe 60
输出
000001 Zoe 60
000007 James 85
000010 Amy 90Case 2:
输入
4 2
000007 James 85
000010 Amy 90
000001 Zoe 60
000002 James 98
输出
000010 Amy 90
000002 James 98
000007 James 85
000001 Zoe 60Case 3:
输入
4 3
000007 James 85
000010 Amy 90
000001 Zoe 60
000002 James 90
输出
000001 Zoe 60
000007 James 85
000002 James 90
000010 Amy 90

思路分享:

思路:排序时可直接调用头文件#incldue<algorithm>中的sort()函数进行排序,排序过程中需要考虑是否有相同的名字和年龄,如果有则根据学号进行排序,

sort()函数:sort函数有三个参数

(1)第一个参数是要排序的数组的起始地址。

(2)第二个参数是结束的地址(最后一位要排序的地址)

(3)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序。

代码分享:

#include <bits/stdc++.h>
using namespace std;
struct excel{string a,ch;int b;
}s[100005];
//a表示学号因为学号要保留前面的数字所以用字符串
//ch表示名字,b表示成绩,注意这里b不能用字符串,不然最后一个测试点过不了bool cmp1(excel x,excel y){if(x.a!=y.a) return x.a<y.a;
}//cmp1是用来排学号的顺序
bool cmp2(excel x,excel y){if(x.ch!=y.ch) return x.ch<y.ch;else return x.a<y.a;
}//cmp2是用来排名字的顺序
bool cmp3(excel x,excel y){if(x.b!=y.b) return x.b<y.b;else return x.a<y.a;
}//cmp3是用来排成绩的顺序
int main(){long long int n,m;cin>>n>>m;for(int i=0;i<n;i++){cin>>s[i].a>>s[i].ch>>s[i].b;}if(m==1){sort(s,s+n,cmp1);//m为1时候执行,进行sort将结构体排序}if(m==2){sort(s,s+n,cmp2);}//m为2时候执行,进行sort将结构体排序if(m==3){sort(s,s+n,cmp3);}//m为3时候执行,进行sort将结构体排序for(int i=0;i<n;i++){cout<<s[i].a<<" "<<s[i].ch<<" "<<s[i].b<<endl;}//最后把排好序的数据输出就可以了return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/580111.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Debezium发布历史30

原文地址&#xff1a; https://debezium.io/blog/2018/03/08/creating-ddd-aggregates-with-debezium-and-kafka-streams/ 欢迎关注留言&#xff0c;我是收集整理小能手&#xff0c;工具翻译&#xff0c;仅供参考&#xff0c;笔芯笔芯. 使用 Debezium 和 Kafka Streams 创建 …

Redis Streams在Spring Boot中的应用:构建可靠的消息队列解决方案【redis实战 二】

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 Redis Streams在Spring Boot中的应用&#xff1a;构建可靠的消息队列解决方案 引言前言Redis Streams的基本概念和特性1. 日志数据结构2. 消息和字段3. 消费者组4. 消息ID5. 实时和历史数据处理6. 性能…

7.3 uvm_config_db in UVM

uvm_config_db类派生自uvm_resource_db类。它是uvm_resource_db顶部的另一层便利层&#xff0c;简化了用于uvm_component实例的基本接口&#xff08;资源库的访问方法&#xff09;。 下面uvm_config_db类的代码段取自uvm源代码。 class uvm_config_db#(type Tint) extends uv…

html之为什么使用表单,常用表单元素使用?

文章目录 一、为什么使用表单呢&#xff1f;二、常用表单元素使用三、总结 一、为什么使用表单呢&#xff1f; 为什么使用表单呢&#xff0c;使用表单是为了更好的收集用户数据&#xff0c;并且安全 二、常用表单元素使用 1、password密码框 密码框&#xff1a;会隐藏数据&a…

网络摄像头爆破实战

*** 重要说明&#xff1a;仅用于交流网络安全测试技术&#xff0c;并唤起大家对网络安全的重视&#xff0c;如用本文的技术干违法的事情&#xff0c;博主概不负责。*** 文章目录 前言1. 发现摄像头2. 发现端口3. 确定品牌信息4. 确定RTSP地址5. 获取视频流6. 获取密码7. 再次获…

flutter学习-day20-使用SafeArea组件处理各机型的安全距离

&#x1f4da; 目录 介绍分析示例和效果图特殊情况 1. 介绍 安全区域&#xff0c;指的是移动端设备的可视窗口范围。处于安全区域的内容不受圆角、刘海屏、iPhone 小黑条、状态栏等的影响&#xff0c;也就是说&#xff0c;我们要做好适配&#xff0c;必须保证页面可视、可操作…

【资源】stable diffusion常用checkpoint

翻墙下载实在太慢了&#xff0c;还不稳定&#xff0c;就把常用的一些checkpoint传网盘了&#xff0c;需要自取~ clip-vit-large-patch14 脸书&#xff1a;openai/clip-vit-large-patch14 Hugging Face 链接&#xff1a;https://pan.baidu.com/s/1dg3XQmcYMoHtNKLqlrBVzQ?p…

亚马逊鲲鹏系统全自动化操作注册下单更快捷

亚马逊鲲鹏系统的强大崛起&#xff0c;让买家号的注册、养号、下单留评等繁琐任务迎来了一场全新的自动化革命。这一创新性软件系统的横空出世&#xff0c;为广大亚马逊卖家提供了一种高效、智能的解决方案&#xff0c;成功摆脱了繁重的手动操作。 在这一系统中&#xff0c;买家…

安卓恢复指南:五种安卓数据恢复软件推荐

我们的手机随身携带。我们抓住他们快速拍照、发送消息并保持娱乐。有时我们对它们过于冒险&#xff0c;将它们扔在混凝土或水中&#xff0c;安装我们不应该安装的软件&#xff0c;然后将它们留在电影中或公园的长椅上。 如果您要在任何地方丢失重要数据&#xff0c;很可能是在…

【Qt-数据库】

Qt编程指南 ■ SQLite■ CSV■ JSON ■ SQLite Qt 提供了很多操作数据库的类&#xff0c; SQLite 是非常小的&#xff0c;是轻量级的&#xff0c;完全配置时小于 400KiB&#xff0c;省略可选功能配置时小于 250KiB。 SQLite 是一个进程内的库&#xff0c;实现了自给自足的、无…

Cesium问题汇总

引入图片报错&#xff0c;Error loading image for billboard: [object Event] 解决方法&#xff1a;可以import或require引入一下再应用

C# WPF上位机开发(扩展上位机之外的技能)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 如果把c# wpf只是看成是一个做界面的框架&#xff0c;那确实有点狭隘了。单独的上位机软件&#xff0c;如果不需要上下游的支持&#xff0c;没有与…

hive中struct相关函数总结

目录 hive官方函数解释示例实战 hive官方函数解释 hive官网函数大全地址&#xff1a;添加链接描述 Return TypeNameDescriptionstructstruct(val1, val2, val3, …)Creates a struct with the given field values. Struct field names will be col1, col2, …structnamed_str…

linux中top参数详解

top命令是Linux下常用的性能分析工具&#xff0c;能够实时显示系统中各个进程的资源占用状况&#xff0c;类似于Windows的任务管理器 top参数详解 第一行&#xff0c;任务队列信息&#xff0c;同 uptime 命令的执行结果 系统时间&#xff1a;07:27:05 运行时间&#xff1a;up …

Oracle查询重复数据取第二行,好用来删除重复数据

Oracle查询重复数据取第二行&#xff0c;好用来删除重复数据 SELECT * FROM ( SELECT e.* , ROW_NUMBER() over(PARTITION BY product_category_id,model_size_id ORDER BY product_category_id,model_size_id) rn FROM equ_check_rules e ) s WHERE rn 2;

微信小程序的bindtap和catchtap的区别

一. 事件 1.事件是视图层到逻辑层的通讯方式。 2. 事件可以将用户的行为反馈到逻辑层进行处理。 3. 事件可以绑定在组件上&#xff0c;当达到触发事件&#xff0c;就会执行逻辑层中对应的事件处理函数。 二. 如何使用事件 1. 简单来说就是将事件绑定到组件上面&#xff0c;bi…

Plantuml之序列图语法介绍(十七)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

阿里云服务器华北3(张家口)暂时无法办理经营性ICP许可证

阿里云服务器的华北 3&#xff08;张家口&#xff09;地域暂时无法办理经营性ICP许可证&#xff0c;如有经营性ICP业务请勿选择此地域。如果需要办理经营性ICP业务的用户&#xff0c;不需要选择华北3&#xff08;张家口&#xff09;地域&#xff0c;可以选择华北2&#xff08;北…

springboot对接WebSocket实现消息推送

1.修改pom文件 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency> 2.增加配置WebSocketConfig.java import org.springframework.context.annotation.Bean…

实训4---硬件部分---点灯实验--按键控制灯实验--uart串口实验

目录 三、硬件部分 【1】点灯实验 【2】按键控制灯实验 【3】uart串口实验 核心代码&#xff1a; 实验视频 实现流水灯 uart串口实验 三、硬件部分 GPIO 【1】点灯实验 1.首先找到要点的灯&#xff0c;在板子上看到对应的白色丝印&#xff0c;比如绿灯D10.然后打开底板…