【洛谷】P5738 【深基7.例4】歌唱比赛(详细注解)

#include <iostream>
#include <iomanip>
#include <algorithm>
using namespace std;

int main()
{
    //定义两个整数变量n和m,用于接收用户输入的二维数组的行数和列数
    int n, m;
    cin >> n >> m;

    //定义二维整数数组A,用于存储用户输入的整数数据
    //这里根据题意直接将数组大小预定义为100行20列
    int A[100][20] = { 0 };

    //定义一维双精度数组B,用于存储每行数据去掉第一个和最后一个元素后的平均值
    double B[100] = { 0 };

    //定义循环控制变量i、j、t,以及用于交换元素时临时存储数据的变量temp
    int i, j, t, temp;

    //以下嵌套的for循环用于从标准输入读取用户输入的数据,并将其存储到二维数组A中
    //外层循环控制行数,内层循环控制列数,按照行数n和列数m,逐个读取整数元素并存入数组A相应位置
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < m; j++)
            cin >> A[i][j];
    }

    //以下是冒泡排序的逻辑,目的是对二维数组A的每一行元素进行从小到大的排序
    //外层循环控制对每一行都执行排序操作,总共执行n次,即对n行数据分别排序
    for (i = 0; i < n; i++)
    {
        //中间层循环控制每一行需要比较的轮数,每一轮都会把当前最大的元素“冒泡”到当前行的末尾
        //因为每比较一轮就能确定一个当前最大元素的最终位置,所以一共需要比较m - 1轮,就能排好序
        for (j = 0; j < m - 1; j++)
        {
            //最内层循环用于相邻元素的比较和交换
            //在每一轮比较中,从第一个元素开始,依次比较相邻的两个元素,如果前面的元素大于后面的元素,就交换它们的位置
            //通过这样不断地比较和交换,每一轮结束后,当前未排序部分的最大元素就会“浮”到末尾
            for (t = 0; t < m - 1 - j; t++)
            {
                if (A[i][t] > A[i][t + 1])
                {
                    //如果当前元素大于下一个元素,则进行交换
                    temp = A[i][t];
                    A[i][t] = A[i][t + 1];
                    A[i][t + 1] = temp;
                }
            }
        }
    }

    //定义变量sum,用于累加每行中间部分元素的和,以便后续计算平均值
    int sum;
    //以下循环用于计算二维数组A中每一行去掉第一个和最后一个元素后的平均值,并将结果存储到数组B中
    //外层循环控制行,即对每一行都进行一次平均值的计算操作
    for (i = 0; i < n; i++)
    {
        //对于每一行,在计算平均值之前,先将sum初始化为0,确保每次计算都是从新的一行开始累加
        sum = 0;
        //内层循环控制列,累加该行从第二个元素(索引为1)到倒数第二个元素(索引为m - 2)的值到sum中
        for (j = 1; j < m - 1; j++)
            sum = sum + A[i][j];
        //计算当前行的平均值,通过将sum乘以1.0进行类型转换,使得除法运算按照浮点数规则进行,得到精确的平均值结果
        //然后将平均值存储到数组B对应的位置,数组B的每个元素对应二维数组A中相应行的平均值
        B[i] = (sum * 1.0) / ((m - 2) * (1.0));
    }

    //使用标准库中的max_element函数找出数组B中的最大值
    //max_element函数接受两个迭代器参数,表示要查找的范围,这里传入B和B + n,表示查找数组B从开始到结束(包含n个元素)这个范围内的最大值
    //通过fixed和setprecision(2)来设置输出格式,使得输出的浮点数保留两位小数,最后将找到的最大值输出显示
    cout << fixed << setprecision(2) << *max_element(B, B + n);

    return 0;
}

 其中查找元素最大值max_element函数的头文件是#include <algorithm>

设置小数精度——setprecision的头文件是#include <iomanip>

冒泡排序(具体题目+C++代码)_c++桶排序代码-CSDN博客 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SL6115替代MT7201C+MT7202内置60V场效应管降压恒流芯片

一、SL6115芯片特点 工作电压范围&#xff1a;SL6115的工作电压从5.5V到60V&#xff0c;提供了更宽的输入电压选择。 输出电流&#xff1a;SL6115提供可调的输出电流&#xff0c;最大输出电流可达到1.5A&#xff0c;相比MT7201C的1A输出电流&#xff0c;具有更高的驱动能力。…

利用Milvus向量数据库实现GraphRAG

大家好&#xff0c;GraphRAG技术借助知识图谱&#xff0c;给RAG应用注入了新的动力&#xff0c;使其能够在海量数据中精确检索所需信息。本文将介绍GraphRAG的实现方法&#xff0c;包括如何创建索引以及如何利用Milvus向量数据库进行查询&#xff0c;助力在信息检索的道路上事半…

高性能低功耗PWM控制功率开关,500V高压MOSFET集成与低功耗PWM控制,小家电与工业控制高效电源解决方案

描述 • WD5208&#xff1a;一款高性能低功耗PWM控制功率开关&#xff0c;适用于离线式小功率降压型应用场合。 • 主要特点&#xff1a; • 集成500V高压MOSFET和高压启动电路。 • 优化轻载噪音、提升系统抗干扰能力。 • 多模式控制、无异音工作。 • 支持降压和升降压…

蓝桥杯准备训练(lesson1,c++方向)

前言 报名参加了蓝桥杯&#xff08;c&#xff09;方向的宝子们&#xff0c;今天我将与大家一起努力参赛&#xff0c;后序会与大家分享我的学习情况&#xff0c;我将从最基础的内容开始学习&#xff0c;带大家打好基础&#xff0c;在每节课后都会有练习题&#xff0c;刚开始的练…

动态系统的建模与分析

7_一阶系统的单位阶跃响应(Step Response)_时间常数(Time Constant) 时间常数区分系统的重要参数&#xff1b;来做系统识别&#xff1b; _7.5换个角度分析单位阶跃响应_LTI System Unit Step Response 8_频率响应_详细数学推导 G(jw)_滤波器 9_一阶系统的频率响应_低通滤波器_M…

k8s,声明式API对象理解

命令式API 比如&#xff1a; 先kubectl create&#xff0c;再replace的操作&#xff0c;我们称为命令式配置文件操作 kubectl replace的执行过程&#xff0c;是使用新的YAML文件中的API对象&#xff0c;替换原有的API对象&#xff1b;而kubectl apply&#xff0c;则是执行了一…

ConcurrentModificationException的理解

遍历集合的时候对集合进行了修改&#xff0c;例如添加、删除元素&#xff0c;就会抛这个异常。 产生这个异常的例子&#xff1a; 使用增强for遍历ArrayList&#xff0c;调用list的remove删除元素。 import java.util.ArrayList; import java.util.List;public class Concurre…

TypeScript和JavaScript的区别

总结&#xff1a; TypeScript 是 JavaScript 的超集&#xff0c;它在 JavaScript 的基础上添加了强类型、接口、类、泛型等特性&#xff0c;并提供了静态类型检查等工具&#xff0c;让开发者能够在编写代码时更加安全、高效、可靠。与 JavaScript 相比&#xff0c;TypeScript …

记录一次网关异常

记一次网关异常 网关时不时就会出现下面的异常。关键是不知道什么时候就会报错&#xff0c;并且有时候就算什么都不操作&#xff0c;也会导致这个异常。 ERROR org.springframework.scheduling.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in schedul…

OpenCV圆形标定板检测算法findCirclesGrid原理详解

OpenCV的findCirclesGrid函数检测圆形标定板的流程如下:   findCirclesGrid函数源码: //_image,输入图像 //patternSize,pattern的宽高 //_centers,blobs中心点的位置 //flags,pattern是否对称 //blobDetector,这里使用的是SimpleBlobDetector bool cv::findCirclesGrid(…

P1226 快速幂

【STUACM-算法入门-快速幂】https://www.bilibili.com/video/BV1Hi4y1L7qB?p2&vd_sourcee583d26dc0028b3e6ea220aadf5bc7fe 想先把a的b次方算出来再对p取模是不可能的&#xff0c;因为肯定超出long long 范围。 需要知道&#xff1a;(x*y)mod p (x mod p)*(y mod p) mo…

Devops-git篇-01-git环境配置

环境配置 设置用户签名 配置用户名&#xff1a; git config --global user.name 你的用户名 配置邮箱&#xff1a; git config --global user.email 注册的邮箱 配置好之后&#xff0c;可以用git config --global --list命令查看配置是否OK $ git config --global --list u…

Create Stunning Word Clouds with Ease!

Looking to craft breathtaking word clouds? WordCloudStudio is your go-to solution! Whether you’re a marketer, educator, designer, or simply someone who loves visualizing data, this app has everything you need. Download now: https://apps.apple.com/app/wor…

Python毕业设计选题:基于Flask的医疗预约与诊断系统

开发语言&#xff1a;Python框架&#xff1a;flaskPython版本&#xff1a;python3.7.7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 系统首页 疾病信息 就诊信息 个人中心 管理员登录界面 管理员功能界面 用户界面 医生…

FPGA实战篇(按键控制LDE实验)

1.按键简介 按键开关是一种电子开关&#xff0c;属于电子元器件类。我们的开发板上有两种按键开关&#xff1a;第一种是本实验所使用的轻触式按键开关&#xff0c;简称轻触开关。使用时以向开关的操作方向施加压力使内部电路闭合接通&#xff0c;当撤销压力时开关断开&#xff…

增加日志定位toast来源

目录 相关问题 案例 分析解决 相关问题 安卓系统集成应用有时会遇到莫名的toast弹框&#xff0c;不清楚是哪个应用&#xff0c;可能频繁弹框影响体验&#xff0c;需要定位来源。 案例 终端未接U盘&#xff0c;却弹出如上toast&#xff0c;需要定位分析来源 分析解决 fram…

曲线积分与曲面积分

1数量函数曲线积分与曲面积分 1.1回顾黎曼积分 回顾之前的定积分是直线积分。 1.1曲线积分的几何意义 1.2曲线积分的性质 1.3中值定理 1.4曲线积分的计算方法 公式里的弧微分&#xff1a;弧微分的几何意义是用一条线段的长度来近似代表一段弧的长度。 图中MT的长度即为弧M…

Java基础面向对象(包装类)

是对八大基本类型做的封装, 使其保留各自的数据特征, 同时变为引用类型, 可以接收存储null值并且也能调用方法 BYTESHORTINTLONGFLOATDOUBLECHARBOOLEANByteShortIntegerLongFloatDoubleCharacterBoolean 基本类型与包装类型 JDK5.0之后, 两者之间可以自动完成封箱与拆箱(自…

2024年12月3日Github流行趋势

项目名称&#xff1a;Lobe Chat 项目维护者&#xff1a;arvinxx, semantic-release-bot, canisminor1990, lobehubbot, renovate项目介绍&#xff1a;一个开源的、现代化设计的人工智能聊天框架。支持多种AI提供商&#xff08;OpenAI / Claude 3 / Gemini / Ollama / Qwen / De…

【AI系统】推理系统引言

引言 在深入探究 AI 编译原理之后&#xff0c;将进一步迈向一个与日常生活紧密相连的新领域。这个领域无处不在&#xff0c;无论是日常使用的购物应用、观看在线视频的平台&#xff0c;还是钟爱的游戏&#xff0c;它们都与这个领域息息相关。该领域&#xff0c;便是推理系统与…