蓝桥杯 使用sort排序(c++)

在这里插入图片描述

sort是一个C++已经为我们实现好的工具,当我们要用它时,需要先引入一个算法的库—— < algorithm >。需要说明的是,sort可以排序任何类型的元素,包括我们自己定义的结构体。
我们将需要在C++文件的开始位置加上:

#include <algorithm>

对于下面这段程序

#include<iostream>
#include<algorithm>
using namespace std;
int main(){int arr[]={2,4,5,3,1};return 0;
}

通过写

sort(arr,arr+5);

我们可以将arr中从开始的元素到第5个元素按从小到大的顺序排列。
而如果我们写:

sort(arr+i,arr+j);

那么被排序的将是arr[i]到arr[j-1],其他元素将保持原位置。

如果希望arr中的元素从大到小排列(或按照某一个规则进行排列),我们可以再为sort传入第三个参数——“排序方法”:

sort(arr,arr+5,greater<int>());

其中,greater表示“更大”的意思,表示待排序的数组中的元素类型为int,整个这行代码表示让一个元素类型为整数的数组从大到小排序。
我们的程序会变为:

#include<iostream>
#include<algorithm>
using namespace std;
int main(){int arr[]={2,4,5,3,1};sort(arr,arr+5,greater<int>());return 0;
}

在这里,我们可以看到,我们的程序声明了一个长
度为10的整数型数组,并通过循环从输入中读入10个整数。
接下来因为我们希望使用排序sort,所以请
用#include将< algorithm >库引入:
1 #include < algorithm >
请注意,我们习惯性地将所有引入操作放在程序最开始。在这里,你可以将< algorithm >在引入< iostream >之后一行引入。

#include <iostream>
#include <algorithm>
using namespace std;
int main(){int arr[10];for(int i=0;i<10;i++){cin>>arr[i];}sort(arr,arr+10);for(int i=0;i<10;i++){cout<<arr[i]<<" ";}cout<<endl;sort(arr,arr+10,greater<int>());for(int i=0;i<10;i++){cout<<arr[i]<<" ";}cout<<endl;return 0;
}

在这里插入图片描述

算出班上信息学成绩前K名的平均成绩。

编入格式
输入共有三行:
第一行:所在班级的人数N(其中1 ≤ N ≤ 30) ;
第二行:为N个用1个空格隔开的信息学分数(其中分数为700及以内正整数) ;
第三行:老师想计算平均数的尖子生人数K。
输出格式
输出一行共一个实数,为信息学分数前K名同学的分数平均数。四舍五入保留两位小数。
样例输入

10
93 85 77 68 59 100 43 94 75 82
4

样例输出

93.00
#include <iostream>
#include <algorithm>
using namespace std;
int score[35];
int main(){int N,k,sum;scanf("%d",&N);for(int i=0;i<N;i++){scanf("%d",&score[i]);}scanf("%d",&k);sort(score,score+N,greater<int>());sum=0;for(int i=0;i<k;i++){sum+=score[i];}printf("%.2f\n",1.0*sum/k);return 0;
}

在这里插入图片描述
小红所在的班级进行了数学考试,老师请小红同学帮忙进行名次排序和各分数段的人数统计工作。
现要求如下:将N名同学的考试成绩放在A数组中,各分数段的人数存到数组中:成绩为100的人数存到B[1]中,成绩为90到99的人数存
到B[2]中,成绩为80到89的人数存到B[3]中,成绩为70到79的人数存到B[4]中,成绩为60到69的人数存到B[5]中,成绩为60分以
下的人数存到B[6]中。
输入格式
输入共有两行:
第一行:为小红所在班级的人数N(其中1 <= N <=30) ;
·第二行:为N个用1个空格隔开的数学分数(其中分数为100及以内正整数)。
输出格式
输出共有若干行:
前N行:每行一个整数是从高到低排序的数学分数 ;
最后一行:是6个按要求,存放到数组B[1]到B[6]中各分数段的人数(各数据之间以1个业格为间隔)。
样例输入

10
93 85 77 68 59 100 43 94 75 82

样例输出

100
94
93
85
82
77
75
68
59
43
1 2 2 2 1 2
#include <iostream>
#include <algorithm>
using namespace std;
int score[35];
int B[7];
int main(){int N;scanf("%d",&N);for(int i=0;i<N;i++){scanf("%d",&score[i]);}sort(score,score+N,greater<int>());for(int i=0;i<N;i++){printf("%d\n",score[i]);}for(int i=0;i<N;i++){if(score[i]==100){B[1]++;}else if(score[i]>=90){B[2]++;}else if(score[i]>=80){B[3]++;}else if(score[i]>=70){B[4]++;}else if(score[i]>=60){B[5]++;}else{B[6]++;}}for(int i=1;i<=6;i++){if(i!=6){printf("%d ",B[i]);}else{printf("%d\n",B[i]);}}return 0;
}

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

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

相关文章

04训练——基于YOLO V8的自定义数据集训练——在windows环境下使用pycharm做训练-1总体步骤

在上文中,笔者介绍了使用google公司提供的免费GPU资源colab来对大量的自定义数据集进行模型训练。该方法虽然简单好用,但是存在以下几方面的短板问题: 一是需要通过虚拟服务器做为跳板机来访问,总体操作起来非常繁杂。 二是需要将大量的数据上传缓慢,管理和使用非常不友…

【融合ChatGPT等AI模型】Python-GEE遥感云大数据分析、管理与可视化及多领域案例实践应用

目录 第一章 理论基础 第二章 开发环境搭建 第三章 遥感大数据处理基础与ChatGPT等AI模型交互 第四章 典型案例操作实践 第五章 输入输出及数据资产高效管理 第六章 云端数据论文出版级可视化 更多应用 随着航空、航天、近地空间等多个遥感平台的不断发展&#xff0c;近…

STM32--人体红外感应开关

本文主要介绍基于STM32F103C8T6和人体红外感应开关实现的控制算法 简介 人体红外模块选用HC-SR501人体红外传感器&#xff0c;人体红外感应的主要器件为人体热释电红外传感器。人体都有恒定的体温&#xff0c;一般在36~37度&#xff0c;所以会发出特定波长的红外线&#xff0…

每日leetcode_193二叉搜索树的最近公共祖先

每日leetcode_193二叉搜索树的最近公共祖先 记录自己的成长&#xff0c;加油。 题目出处&#xff1a;LCR 193. 二叉搜索树的最近公共祖先 - 力扣&#xff08;LeetCode&#xff09; 题目 思路&#xff1a; 解题 class Solution {public TreeNode lowestCommonAncestor(TreeNod…

ElasticSearch环境准备

Elasticsearch 是一个基于 Apache Lucene™ 的开源搜索引擎。不仅仅是一个全文搜索引擎&#xff0c;它还是一个分布式的搜索和分析引擎&#xff0c;可扩展并能够实时处理大数据。以下是关于 Elasticsearch 的一些主要特点和说明&#xff1a; 1.实时分析&#xff1a;Elasticsear…

关于VMware Workstation Pro中虚拟机无法连接外网问题解决

解决方案 1.虚拟机设置 打开虚拟机设置&#xff0c;将网络设备器修改为NAT模式。注意如果是克隆的多个虚拟机&#xff0c;需要将高级&#xff08;V&#xff09;里面的mac地址进行重新生成。 2.配置虚拟网络编辑器 进入虚拟网络编辑器后&#xff0c;将子网和子网掩码进行修…

CRMEB 标准版商城系统新增主题风格颜色【超级完整教程】

一、后台 1.新增主题图片 assets/images/brown.jpg和assets/images/brownsign.png 2.修改admin/src/pages/setting/themeStyle/index.vue 3.修改admin/src/pages/marketing/sign/index.vue 4.修改admin/src/pages/system/group/visualization.vue &#xff08;第三步和第四步…

软件行业与就业(导师主讲)

在企业软件应用的整体架构体系中&#xff0c;有一部分被称为中间件&#xff0c;那么什么叫中间件&#xff1f; 中间件&#xff08;Middleware&#xff09;是指位于操作系统和应用程序之间的一层软件层&#xff0c;它提供了一组工具和服务&#xff0c;用于简化和增强企业软件应用…

MySQL之MHA集群

MHA概述 什么是 MHA MHA&#xff08;MasterHigh Availability&#xff09;是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 MHA 的出现就是解决MySQL 单点故障的问题。 MySQL故障切换过程中&#xff0c;MHA能做到0-30秒内自动完成故障切换操作。 MHA能在故障切换…

[羊城杯 2020]easyser - 反序列化+SSRF+伪协议(绕过死亡die)

[羊城杯 2020]easyser 一、解题过程&#xff08;一&#xff09;、一阶段&#xff08;二&#xff09;、二阶段 二、思考总结 一、解题过程 &#xff08;一&#xff09;、一阶段 可以直接使用ctf-wscan扫描一下有什么文件&#xff0c;或者直接试试robots.txt能不能行 直接打开…

岛屿的数量

题目描述 给你一个由 ‘1’&#xff08;陆地&#xff09;和 ‘0’&#xff08;水&#xff09;组成的的二维网格&#xff0c;请你计算网格中岛屿的数量。 岛屿总是被水包围&#xff0c;并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外&#xff0c;你可以…

见微知著:从企业售后技术支持看云计算发展

作者&#xff1a;余凯 售后业务中的细微变化 作为阿里云企业容器技术支持的一员&#xff0c;每天会面对全球各地企业级客户提出的关于容器的各种问题&#xff0c;通过这几年的技术支持的经历&#xff0c;逐步发现容器问题客户的一些惯性&#xff0c;哪些是重度用户&#xff0…