结构体排序 C++ 蓝桥杯

成绩排序

#include<iostream>
#include<algorithm>
using namespace std;
struct stu {string name;//名字int grade;//成绩
};
stu a[30];
bool cmp(stu l, stu r) {if (l.grade != r.grade) return l.grade > r.grade;return l.name < r.name;
}
int main() {int n; cin >> n;for (int i = 1; i <= n; i++) cin >> a[i].name >> a[i].grade;sort(a + 1, a + n + 1, cmp);for (int i = 1; i <= n; i++) cout << a[i].name << " " << a[i].grade << endl;return 0;
}

成绩排序思路:输入n名学生的名字和成绩,所以开结构体类型,学生包含两个属性,姓名和成绩,排序算法在打比赛时常用的是sort(在头文件algorithm下使用)。涉及到自己写的结构体类型时,必须要重写排序规则即代码中的bool cmp(stu l,stu r)函数作为sort的第三个参数。

bool cmp(stu l,stu r)   先是比较成绩,如果成绩不同,返回成绩高的在前。再返回名字字典序小的。

sort(a+1,a+n+1,cmp) ——  a+1:待排序区间的首元素——   a+n+1:待排序区间尾元素后一位——    cmp:比较器,排序规则。

最后输出排好序的数组里的每个元素的名字+空格+对应的成绩+换行。

明明的随机数

#include<iostream>
#include<set>
using namespace std;
int main() {set<int>s;//集合-去重+排序int n; cin >> n;for (int i = 1; i <= n; i++) {int x; cin >> x;s.insert(x);}cout << s.size() << endl;for (auto i : s) cout << i << " ";return 0;
}

明明的随机数方法一

set解决思路:直接用集合,因为本题要对一组数去重,并且排序,从小到大。集合会自动对传入的数进行去重和排序。最后输出集合里的元素个数,换行输出排好了的集合每一个元素。

集合知识点:stl容器之一   ——    standard    template   library  —— 标准模板库

集合头文件:include<set>

集合的创建:set<int>s; ——关键字<集合里元素类型>集合名

向集合里插入元素:s.insert(x)——向集合里插入值x

求集合元素个数:s.size()——直接输出去重排序后的集合元素个数

集合输出不能用下标增强for循环——for(auto i:s)  ——auto  i:s——自动 识别集合s里的每个元素类型,让i去从头到尾遍历每个元素。所以直接输出  i   ,cout<<i<<"  ";

#include<iostream>
using namespace std;
const int N = 1e3 + 10;
int cnt[N];
int main() {int n; cin >> n;//  计数排序for (int i = 1; i <= n; i++) {int x; cin >> x;cnt[x]++;}//  统计去重后有多少个元素int ans = 0;for (int i = 0; i <= 1000; i++) {if (cnt[i] != 0) ans++;}cout << ans << endl;//  输出去每个元素(去重)for (int i = 0; i <= 1000; i++) {if (cnt[i] != 0) cout << i << " ";}return 0;
}

明明的随机数方法二

计数排序解决思路

①开一个计数数组,大小由所有可能出现的数的最大值决定。循环输入每一个数,将每一个数作为计数数组的下标,每个数出现次数作为这个元素的值。

②循环遍历每一个下标,判断a[i]元素值是否不等于0,不等于0就将ans(记录去重后的总数)++,输出ans及换行

③循环遍历每一个下标,判断a[i]元素值是否不等于0,不等于0就直接输出下标i,cout<<i<<" "

完结!!!⠀՞⸝⸝. .⸝⸝՞˳ഒ

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

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

相关文章

低代码提升交付效率的公式计算

低&#xff08;无&#xff09;代码平台&#xff08;后统称“低代码”&#xff09;能够提升数字化应用建设、交付效率&#xff0c;已经成为IT从业人员的共识。目前&#xff0c;大部分CIO/CDO都能清晰定位和认知低代码的特点和作用。但仍然有人认为&#xff0c;使用了低代码工具软…

【漫画机器学习】083.安斯库姆四重奏(Anscombe‘s Quartet)

安斯库姆四重奏&#xff08;Anscombes Quartet&#xff09; 1. 什么是安斯库姆四重奏&#xff1f; 安斯库姆四重奏&#xff08;Anscombes Quartet&#xff09;是一组由统计学家弗朗西斯安斯库姆&#xff08;Francis Anscombe&#xff09; 在 1973 年 提出的 四组数据集。它们…

【PDF多区域识别】如何批量PDF指定多个区域识别改名,基于Windows自带的UWP的文字识别实现方案

海关在对进口货物进行查验时,需要核对报关单上的各项信息。对报关单 PDF 批量指定区域识别改名后,海关工作人员可以更高效地从文件名中获取关键信息,如货物来源地、申报价值等。例如文件名 “[原产国]_[申报价值].pdf”,有助于海关快速筛选重点查验对象,提高查验效率和监管…

C基础寒假练习(6)

一、终端输入行数&#xff0c;打印倒金字塔 #include <stdio.h> int main() {int rows;printf("请输入倒金字塔的行数: ");scanf("%d", &rows);for (int i rows; i > 0; i--) {// 打印空格for (int j 0; j < rows - i; j) {printf(&qu…

使用 CSS 实现透明效果

在 CSS 中&#xff0c;实现透明效果有几种方法&#xff0c;具体使用哪种方法取决于具体需求。以下是一些常见的方法&#xff1a; 使用 opacity 属性&#xff1a; opacity 属性可以设置整个元素的透明度&#xff0c;包括其所有的子元素。 .transparent { opacity: 0.5; /* 0 表…

解锁反序列化漏洞:从原理到防护的安全指南

目录 前言 一、什么是反序列化 二、反序列化漏洞原理 三、反序列化漏洞的危害 &#xff08;一&#xff09;任意代码执行 &#xff08;二&#xff09;权限提升 &#xff08;三&#xff09;数据泄露与篡改 四、常见的反序列化漏洞场景 &#xff08;一&#xff09;PHP 反…

UE虚幻引擎No Google Play Store Key:No OBB found报错如何处理

UE虚幻引擎No Google Play Store Key&#xff1a;No OBB found报错如何处理&#xff1f; 问题描述&#xff1a; UE成功打包APK并安装过后&#xff0c;启动应用时提示&#xff1a; No Google Play Store KeyNo OBB found and no store key to try to download. Please setone …

Text2Sql:开启自然语言与数据库交互新时代(3030)

一、Text2Sql 简介 在当今数字化时代&#xff0c;数据处理和分析的需求日益增长。对于众多非技术专业人员而言&#xff0c;数据库操作的复杂性常常成为他们获取所需信息的障碍。而 Text2Sql 技术的出现&#xff0c;为这一问题提供了有效的解决方案。 Text2Sql&#xff0c;即文…

八大排序算法细讲

目录 排序 概念 运用 常见排序算法 插入排序 直接插入排序 思想&#xff1a; 步骤&#xff08;排升序&#xff09;: 代码部分&#xff1a; 时间复杂度&#xff1a; 希尔排序 思路 步骤 gap的取法 代码部分&#xff1a; 时间复杂度&#xff1a; 选择排序 直接选…

基于MODIS/Landsat/Sentinel/国产卫星遥感数据与DSSAT作物模型同化的作物产量估算

基于过程的作物生长模拟模型DSSAT是现代农业系统研究的有力工具&#xff0c;可以定量描述作物生长发育和产量形成过程及其与气候因子、土壤环境、品种类型和技术措施之间的关系&#xff0c;为不同条件下作物生长发育及产量预测、栽培管理、环境评价以及未来气候变化评估等提供了…

【容器技术01】使用 busybox 构建 Mini Linux FS

使用 busybox 构建 Mini Linux FS 构建目标 在 Linux 文件系统下构建一个 Mini 的文件系统&#xff0c;构建目标如下&#xff1a; minilinux ├── bin │ ├── ls │ ├── top │ ├── ps │ ├── sh │ └── … ├── dev ├── etc │ ├── g…

排序算法与查找算法

1.十大经典排序算法 我们希望数据以一种有序的形式组织起来&#xff0c;无序的数据我们要尽量将其变得有序 一般说来有10种比较经典的排序算法 简单记忆为Miss D----D小姐 时间复杂度 &#xff1a;红色<绿色<蓝色 空间复杂度&#xff1a;圆越大越占空间 稳定性&…

使用多模态大语言模型进行深度学习的图像、文本和语音数据增强

在过去的五年里&#xff0c;研究方向已从传统的机器学习&#xff08;ML&#xff09;和深度学习&#xff08;DL&#xff09;方法转向利用大语言模型&#xff08;LLMs&#xff09;&#xff0c;包括多模态方法&#xff0c;用于数据增强&#xff0c;以提高泛化能力&#xff0c;并在…

PCA9685舵机控制板使用

1. 概述 PCA9685 是一款由 NXP 半导体公司生产的 16 通道 PWM 驱动器&#xff0c;广泛应用于多个舵机、LED 灯带控制等场景。它通过 I2C 总线与主控芯片&#xff08;如 STM32&#xff09;通信&#xff0c;可以高效地控制多个舵机的运动和多通道 PWM 输出。该模块适用于多舵机控…

2025.2.6(c++杂项补充及qt基础介绍)

作业 1> 完善C的思维导图 2> 重新创建一个新的项目&#xff0c;将默认提供的代码进行注释 3> QT的思维导图 4> 刷2个 98 C 牛客网上的题 笔记&#xff08;后期复习补上&#xff09;

Postgresql的三种备份方式_postgresql备份

这种方式可以在数据库正在使用的时候进行完整一致的备份&#xff0c;并不阻塞其它用户对数据库的访问。它会产生一个脚本文件&#xff0c;里面包含备份开始时&#xff0c;已创建的各种数据库对象的SQL语句和每个表中的数据。可以使用数据库提供的工具pg_dumpall和pg_dump来进行…

京准:NTP卫星时钟服务器对于DeepSeek安全的重要性

京准&#xff1a;NTP卫星时钟服务器对于DeepSeek安全的重要性 京准&#xff1a;NTP卫星时钟服务器对于DeepSeek安全的重要性 在网络安全领域&#xff0c;分布式拒绝服务&#xff08;DDoS&#xff09;攻击一直是企业和网络服务商面临的重大威胁之一。随着攻击技术的不断演化…

S4 HANA (递延所得税传输)Deferred Tax Transfer - S_AC0_52000644

本文主要介绍在S4 HANA OP中S4 HANA (递延所得税传输)Deferred Tax Transfer - S_AC0_52000644的后台配置及前台操作。具体请参照如下内容&#xff1a; 目录 Deferred Tax Transfer - S_AC0_52000644 1. 后台配置 1.1 Business Transaction Events激活- FIBF 2. 前台操作 …

Redis --- 使用GEO实现经纬度距离计算

什么是GEO&#xff1f; Spring Boot 项目中可以通过 Spring Data Redis 来使用 Redis GEO 功能&#xff0c;主要通过 RedisTemplate 和 GeoOperations 接口来操作地理位置数据。 Service public class GeoService {Autowiredprivate RedisTemplate<String, Object> red…

【中间件】 Kafka

1.先导知识&#xff1a; 消息队列MQ(Message Queue): 将需要传输的数据临时(设置有效期)存放在队列中,进行存取消息消息队列中间件&#xff1a; 用来存储消息的中间件(组件) 2.消息队列的应用场景 异步处理 为什么要使用消息队列&#xff1f; 比较耗时的操作放在其他系统中…