497 蓝桥杯 成绩分析 简单

497 蓝桥杯 成绩分析 简单

//C++风格解法1,*max_element()与*min_element()求最值
//时间复杂度O(n),通过率100%
#include <bits/stdc++.h>
using namespace std;using ll = long long;
const int N = 1e4 + 10;
int a[N];int main(){ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);int n;cin >> n;for(int i = 1; i <= n; ++i)cin >> a[i];cout << *max_element(a + 1, a + 1 + n) << '\n';cout << *min_element(a + 1, a + 1 + n) << '\n';ll sum = 0;for(int i = 1; i <= n; ++i)sum += a[i];cout << fixed << setprecision(2) << 1.0 * sum / n <<'\n';return 0;
}

*max_element()与*min_element()分别用来求最大元素和最小元素的值,

如果不加 * 获取的是地址。

虽然集合作为二叉树实现, 但是时间复杂度O(n),n为数组大小(由传入的参数决定)

在集合或其他有序容器上使用相同的比较函数,函数是线性的,触及每个元素,因为在恒定时间内使用.rbegin()

如果使用不同的比较函数,则无法保证顺序一致,但同样必须触及每个元素,并且至少是线性的。

接收参数:容器的首尾地址(迭代器)(可以是一个区间)

返回:最值元素的值

C++ primer (中文版第四版)第273页

9.3.2 begin和end成员

        begin和end操作产生指向容器内第一个元素和最后一个元素的下一个位置的迭代器,

        如下所示。这两个迭代器通常用于标记包含容器中所有元素的迭代范围。

        

        c.begin() 返回一个迭代器,它指向容器c的第一个元素

        c.end() 返回一个迭代器,它指向容器c的最后一个元素的下一个位置

        c.rbegin() 返回一个逆序迭代器,它指向容器c的最后一个元素

        c.rend() 返回一个逆序迭代器,它指向容器c的第一个元素前面的位置

       

        上述每个操作都有两个不同的版本:一个是const成员,另一个是非const成员。这些操作返回什么类型取决于容器是否为const。如果容器不是const,则这些操作返回iterator或reverse_iterator类型。如果容器是const,则其返回类型要加上const_前缀,也就是const_iterator和const_reverse_iterator类型。

  • begin();end()正序迭代器
  • cbegin();cend() 返回 const 的begin();end()
  • rbegin();rend() 逆序迭代器
  • crbegin();crend() 返回 const 的 rbegin();rend()

用fixed,一个manipulator,消除浮点数的科学计数法。

只要出现了fixed,后面都按fixed输出。

fixed与setprecision(n)连用可以控制小数点后的位数,可以理解为定点数记数法。

没有fixed,就是浮点数记数法,控制的就是有效数字的位数(包括小数点前的)

fixed是一个计算机专业术语,指向托管变量的指针并在 statement 执行期间“钉住”该变量。
fixed流操作符,它表示浮点输出应该以固定点或小数点表示法显示。

//C++风格解法2,打擂台算法,max()、min()通过率100%
#include <bits/stdc++.h>
using namespace std;const int N = 1e4 + 10;
int a[N];int main(){ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);int n;cin >> n;for(int i = 1; i <= n; ++i)cin >> a[i];int mx = a[1], mi = a[1];for(int i = 1; i <= n ; ++i){mx = max(mx, a[i]);mi = min(mi, a[i]);}cout << mx << '\n' << mi << '\n';int sum = 0;for(int i = 1; i <= n; ++i)sum += a[i];cout << fixed << setprecision(2) << 1.0 * sum / n <<'\n';//1.0 * sum / n 强制转化为浮点数return 0;
}

min(a,b)返回a和b中较小的那个值,只能传入两个值,或传入一个列表。

min(1,2) = 1

min({1,2,3,4}) = 1

同理可得max(a,b)的含义和表示,时间复杂度为O(1),传入参数为数组时时间复杂度为O(n),

n为数组大小。

 C/C++中“/”本身带有取整的含义,n*1/i,即意味着整数除以整数,结果取整;n*1.0/i即意味着浮点数除以整数,结果会强制转换为浮点数。

//C风格解法3,打擂台算法,通过率100%
#include <stdio.h>
#include <stdlib.h>int main(){int n,i,a[10001];float aver = 0;int max = 0,min = 100;scanf("%d", &n);for(i = 0; i < n; i++){scanf("%d", &a[i]);aver += a[i];if(a[i] > max)max = a[i];if(a[i] < min)min = a[i];}aver = aver / n;printf("%d\n %d\n %.2f",max,min,aver);return 0;
}

在C语言中,printf() 函数中的 %5.2f 是一个格式说明符,用于格式化浮点数的输出。

  • %:格式说明符的起始标志。

  • 5:字段宽度,表示输出的最小字符数,包括空格(可能没有)、整数部分、小数点和小数部分。它指定了输出的总宽度为5个字符。

  • .:小数点用来分隔整数部分和小数部分。

  • 2:精度,表示小数部分的位数。指定小数部分保留2位。

  • f:表示要格式化的数据类型是浮点数。

  • 浮点数 3.14159 并使用 %5.2f 进行格式化输出,它将输出为 "空格3.14",总共占据5个字符的宽度,其中有一个空格字符,一个整数,一个小数点字符和两个小数。而且没有负号,所以在左侧输出一个空格占位,即右对齐输出。

  • 浮点数3.5,使用%-5.2f进行格式化输出,那么就是输出"3.50空格",3.50总共有4位,总共占据5个字符的宽度,而且有负号,所以在右侧输出一个空格占位,即左对齐输出。

  • 没有负号右对齐,位数不足,左边补齐空格,满足或超过位数,原样输出。

  • 有负号左对齐,位数不足,右边补空格。

  • printf("%-4d",20); 输出"20空格空格"(左对齐,右边补2个空格),printf("%-4d",12345); 输出:12345(原样输出)

  • printf("%4d",20); 输出"空格空格20"(右对齐,左边补2个空格),printf("%2d",12345); 输出:12345(原样输出)

reference:

C++max_element()min_element()函数简介 - 知乎 (zhihu.com)

C++ max_element()的使用-CSDN博客

c++ - STL max_element 的复杂度 - IT工具网 (coder.work)

反向迭代器(rbegin,rend)-CSDN博客

C++ 容器中 begin()、cbegin()、rbegin()、crbegin-CSDN博客

详解C++中fixed,setprecision(),setw()的用法_c++ fixed-CSDN博客

如何深刻理解IEEE浮点数的表示(IEEE floating-point representation)_ieee floating point-CSDN博客
C++003-C++变量和数据类型2_c++输入正方形的边长m和n,计算阴影部分的面积-CSDN博客
C语言基础;打擂台算法_打擂台算法流程图-CSDN博客
sum=sum+n*1.0/i;与 sum=sum+n*1/i;为什么输出结果不一样? - 知乎 (zhihu.com)
C语言中printf输出特殊字符(“%d“或者“\n“)_c语言中d%\n是什么意思-CSDN博客
在C语言中,printf("max is %d\n",max)和printf("%d",max)有区别吗?_百度知道 (baidu.com)

C语言中输出格式%.2f和%1.2f有什么不同? - 知乎 (zhihu.com)

c语言printf()函数中的%5.2f是什么意思?_百度知道 (baidu.com)

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

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

相关文章

java基于VUE3+SSM框架的在线宠物商城+vue论文

摘 要 信息数据从传统到当代&#xff0c;是一直在变革当中&#xff0c;突如其来的互联网让传统的信息管理看到了革命性的曙光&#xff0c;因为传统信息管理从时效性&#xff0c;还是安全性&#xff0c;还是可操作性等各个方面来讲&#xff0c;遇到了互联网时代才发现能补上自古…

【langchain】在单个文档知识源的上下文中使用langchain对GPT4All运行查询

In the previous post, Running GPT4All On a Mac Using Python langchain in a Jupyter Notebook, 我发布了一个简单的演练&#xff0c;让GPT4All使用langchain在2015年年中的16GB Macbook Pro上本地运行。在这篇文章中&#xff0c;我将提供一个简单的食谱&#xff0c;展示我们…

【Docker基础三】Docker安装Redis

下载镜像 根据自己需要下载指定版本镜像&#xff0c;所有版本看这&#xff1a;Index of /releases/ (redis.io) 或 https://hub.docker.com/_/redis # 下载指定版本redis镜像 docker pull redis:7.2.0 # 查看镜像是否下载成功 docker images 创建挂载目录 # 宿主机上创建挂…

element-ui table height 属性导致界面卡死

问题: 项目上&#xff0c;有个点击按钮弹出抽屉的交互, 此时界面卡死 原因分析: 一些场景下(父组件使用动态单位/弹窗、抽屉中使用), element-ui 的 table 会循环计算高度值, 导致界面卡死 github 上的一些 issues 和解决方案: Issues ElemeFE/element GitHub 官方讲是升…

bootstrap教程

bootstrap教程 大家好&#xff0c;我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天&#xff0c;让我们一同进入前端开发的世界&#xff0c;探索一款备受欢迎的前端框架——Bootstra…

修改安卓apk设置为安卓主屏幕(launcher)

修改安卓apk 将apk可以设置安卓主屏幕 原理&#xff1a; 将打包好的apk文件进行拆包增加配置文件在重新编译回apk包 需要得相关文件下载 解包 apktool :https://pan.baidu.com/s/1oyCIYak_MHDJCvDbHj_qEA?pwd5j2xdex2jar&#xff1a;https://pan.baidu.com/s/1Nc-0vppVd0G…

2024年学习计划

2024-2-29号完成 机器视觉基础知识学习&#xff0c;并可以处理视觉工作中的需求。 2024-3月份学习SCARA机械手应用开发SCARA机器人-埃斯顿自动化 - ESTUN 2024-4月份继续学习python 好了&#xff0c;今年可以完成这三个目标就满足了 好好学习&#xff0c;天天向上。每天进步…

【数据库系统概论】数据库并发控制机制——并发控制的主要技术之封锁(Locking)

系统文章目录 数据库的四个基本概念&#xff1a;数据、数据库、数据库管理系统和数据库系统 数据库系统的三级模式和二级映射 数据库系统外部的体系结构 数据模型 关系数据库中的关系操作 SQL是什么&#xff1f;它有什么特点&#xff1f; 数据定义之基本表的定义/创建、修改和…

Vue CLI组件通信

目录 一、组件通信简介1.什么是组件通信&#xff1f;2.组件之间如何通信3.组件关系分类4.通信解决方案5.父子通信流程6.父向子通信代码示例7.子向父通信代码示例8.总结 二、props1.Props 定义2.Props 作用3.特点4.代码演示 三、props校验1.思考2.作用3.语法4.代码演示 四、prop…

嵌入式培训机构四个月实训课程笔记(完整版)-Linux系统编程第四天-Linux管道练习题(物联技术666)

更多配套资料CSDN地址:点赞+关注,功德无量。更多配套资料,欢迎私信。 物联技术666_嵌入式C语言开发,嵌入式硬件,嵌入式培训笔记-CSDN博客物联技术666擅长嵌入式C语言开发,嵌入式硬件,嵌入式培训笔记,等方面的知识,物联技术666关注机器学习,arm开发,物联网,嵌入式硬件,单片机…

爬虫网易易盾滑块案例:某乎

声明&#xff1a; 该文章为学习使用&#xff0c;严禁用于商业用途和非法用途&#xff0c;违者后果自负&#xff0c;由此产生的一切后果均与作者无关 一、滑块初步分析 js运行 atob(‘aHR0cHM6Ly93d3cuemhpaHUuY29tL3NpZ25pbg’) 拿到网址&#xff0c;浏览器打开网站&#xff0…

Java十种经典排序算法详解与应用

数组的排序 前言 排序概念 排序是将一组数据&#xff0c;依据指定的顺序进行排列的过程。 排序是算法中的一部分&#xff0c;也叫排序算法。算法处理数据&#xff0c;而数据的处理最好是要找到他们的规律&#xff0c;这个规律中有很大一部分就是要进行排序&#xff0c;所以需…

python总结-装饰器

装饰器 装饰器解决日志问题&#xff08;分三个版本&#xff09;多个装饰器带参数的装饰器wraps装饰器内置装饰器property装饰器staticmethod装饰器classmethod装饰器 类装饰器 概念 装饰器来自 Decorator 的直译。什么叫装饰&#xff0c;就是装点、提供一些额 外的功能。在 pyt…

一个可能的网址服务器证书自动续期自动化实现脚本方案

需求背景&#xff1a; 目标: 您希望为您的网站启用HTTPS&#xff0c;以保护通信安全&#xff0c;并希望这个过程是免费的。 证书类型: 您需要获取SSL/TLS证书&#xff0c;并且希望证书能够自动续期&#xff0c;以确保网站不会因证书过期而停机。 服务器兼容性: 您希望生成的证…

idea2023连接gitee远程仓库

目录 1.在gitee创建远程仓库 2.在Idea里配置git 3.初始化本地仓库 4. 提交推送至远程仓库 注意&#xff1a;提前下好git工具、idea2023&#xff0c;注册gitee账号&#xff0c;本文不介绍 1.在gitee创建远程仓库 创建好后&#xff0c;复制远程仓库地址 2.在Idea里配置git ​ …

【MATLAB源码-第104期】基于matlab的MPSK和MQAM调制解调方式仿真,输出误码率曲线。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 MPSK&#xff08;多相位键控&#xff09; MPSK是一种基于载波相位变化的数字调制技术。它的核心原理是通过改变载波的相位来表示不同的数字信息。这种技术可以分为几个不同的级别&#xff0c;其中最常见的包括&#xff1a; 1…

【书生·浦语大模型实战营02】《轻松玩转书生·浦语大模型趣味Demo》学习笔记

《轻松玩转书生浦语大模型趣味Demo》 1、InternLM-Chat-7B 智能对话&#xff1a;生成 300 字的小故事 本节中我们将使用InternLM-Chat-7B 模型部署一个智能对话 Demo。 1.1 环境准备 在InternStudio平台中选择 A100(1/4) 的配置&#xff0c;镜像选择 Cuda11.7-conda&#x…

Rust组织下的其他项目介绍

按当前star数排序 rustlings https://rustlings.cool/ Rustlings是一个用于学习Rust编程语言的项目&#xff0c;提供小练习帮助熟悉Rust代码的阅读和编写。 需要安装Rust&#xff0c;然后可以使用提供的命令来运行练习并修复其中的错误。项目还提供了一些额外的学习资源&#x…

Linux系统使用超详细(八)~磁盘管理

目录 一、认识磁盘 二、磁盘运行机制 三、磁盘检查 3.1查找设备名称和分区号 3.1.1使用lsblk命令&#xff1a; 3.1.2使用fdisk命令&#xff1a; 3.1.3使用blkid命令&#xff1a; 3.2检查方向 3.2.1文件系统完整性&#xff1a; 3.2.2磁盘健康状态&#xff1a; 3.2.3磁…

# 2024年 外形自我改造计划(A)

2024年 自我改造计划&#xff08;A&#xff09; 一、前言 希望能在2024实现浴火重生&#xff0c;在这一年里我记录一下自我改造计划 二、生活习惯篇 生活习惯是决定一个人状态的关键要素&#xff0c;为了保持我的状态的持续&#xff0c;我需要保证我拥有一个相对良好的生活…