[C/C++入门][ifelse]11、三位数找最大值(比大小以及多个数找最大值)

比较数的大小

在学习数学的早期阶段,孩子们会学会如何比较两个数的大小。他们通常通过观察数的数字组成来判断哪个数更大。例如,当比较数字34和56时,如果左边第一位的数字不同,那么具有较大数字的数就是较大的数。在这个例子中,5比3大,所以56大于34。

如果第一个数字相同,则需要比较下一个数字。例如,比较34和38时,由于第一个数字都是3,我们就需要比较第二位的数字,4小于8,因此34小于38。

在计算机中通过> < 很方便的就可以比较出两个数的大小。

那三个数,只要判断他比另外两个都大就可以了,但是当数字躲起来呢,比较的方法就比较混乱了。

先看一下初学者思路的方法

如果a>=b,那么再判断b,c的大小:

如果b>=c,那么a>=b>=c。因此a是最大的。但是其他的数也得比较一下。

#include<iostream>
using namespace std;
int main()
{int a, b, c;//输入三个数cin >> a >> b >> c;if(a >= b){if(b >= c) cout << a << " " << b << " " << c << endl;else{if(a >= c)cout << a << " " << c << " "<< b << endl;else //也就是a < ccout << c << " " << a << " "<< b << endl;}}else//a < b{if(a >= c)cout << b << " " << a << " " << c << endl;else //也就是a < c{if(b >= c)cout << b << " " << c << " " << a << endl;else //也就是b < ccout << c <<" " << b << " " << a << endl;}}return 0; 
}

比较聪明的小伙伴觉得ifelse嵌套比较乱,会使用&&逻辑运算符来做

#include<iostream>
using namespace std;
int main()
{int a, b, c;cin >> a >> b >> c;if(a >= b && b >= c)cout << a <<" " << b << " " << c << endl;else if(a >= c && c >= b)cout << a << " " << c <<" " << b << endl;else if(b >= a && a >= c)cout << b << " " << a << " " << c << endl;else if(b >= c && c >= a)cout << a << " " << c << " " << b << endl;else if(c >= a && a >= b)cout << c << " " << a << " " << b << endl;else if(c >= b && b >= a)cout << c << " " << b << " " << a << endl;return 0; 
}

那数字如果多一点呢,五个,十个,你们还比的出来么?

因此我们需要学习更好的方法来解决这个问题

找最大值的方法

当我们有一组数时,找出最大值就是重复上述的比较过程,直到确定所有数中最大的那一个。具体步骤如下:

  1. 选择与比较:从数列中选取两个数进行比较,确定哪个数更大。
  2. 记忆最大值:记住这两个数中较大的那个数。
  3. 继续比较:将记忆中的最大值与列表中的下一个数进行比较。如果下一个数更大,就更新记忆中的最大值。
  4. 遍历整个列表:重复上述过程,直到列表中的所有数都被比较过。
  5. 确定最大值:经过上述步骤后,你记忆中的数就是列表中的最大值。

例如,如果有数列 [3, 7, 2, 9, 5],我们可以这样找出最大值:

  • 比较3和7,7更大,记忆7。
  • 比较7和2,7依然最大,保持记忆7。
  • 比较7和9,9更大,更新记忆为9。
  • 比较9和5,9依然是最大值。

最后,我们得出结论,数列 [3, 7, 2, 9, 5] 中的最大值是9。

实践示例(先不用数组)

void test1() {//1、定义变量nint n;cin >> n;//见名知意double max = 0, min = 0, avg;double cj;double sum = 0;//2、输入n个考生的成绩。for (int i = 1; i <= n; i++) {cin >> cj;sum += cj;if (max == 0) {max = cj;}else if (cj > max) {max = cj;}if (min == 0) {min = cj;}else if (cj < min) {min = cj;}}cout << "最大值:" << max << endl;cout << "最小值:" << min << endl;cout << "平均值:" << sum / n << endl;
}

让我们通过一个小例子来实践一下这个方法。假设我们有以下数列:让我们一步步找出其中的最大值。

#include <iostream>
using namespace std;int main() {int numbers[] = {5, 3, 9, 1, 8}; // 定义一个整数数组int n = sizeof(numbers) / sizeof(numbers[0]); // 计算数组长度int max_value = numbers[0]; // 初始化最大值为数组的第一个元素// 遍历数组,寻找最大值for (int i = 1; i < n; ++i) {if (numbers[i] > max_value) {max_value = numbers[i];}}// 输出最大值cout << "最大值是: " << max_value << endl;return 0;
}

上面其实都已经加了注释了,怎么样,理解了么,方法需要多练,然后有问题我们评论区讨论吧。

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

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

相关文章

nginx生成自签名SSL证书配置HTTPS

一、安装nginx nginx必须有"--with-http_ssl_module"模块 查看nginx安装的模块&#xff1a; rootecs-7398:/usr/local/nginx# cd /usr/local/nginx/ rootecs-7398:/usr/local/nginx# ./sbin/nginx -V nginx version: nginx/1.20.2 built by gcc 9.4.0 (Ubuntu 9.4.0…

机器学习与神经网络之间的关系 --九五小庞

机器学习与神经网络之间存在紧密而复杂的关系。简而言之&#xff0c;神经网络是机器学习领域中的一个重要分支&#xff0c;尤其是深度学习的核心组成部分。下面详细解释它们之间的关系&#xff1a; 机器学习概述 机器学习是一门涉及让计算机系统从数据中自动学习和改进的学科。…

k8s secret-从环境变量里去读和从yaml文件里读取secret有什么区别?

从环境变量和YAML文件中读取Kubernetes Secret的区别主要体现在使用方式、动态更新能力以及管理便捷性上。以下是详细的区别说明&#xff1a; 1. **使用方式**&#xff1a; - **环境变量方式**&#xff1a;Kubernetes允许将Secret作为环境变量注入到Pod的容器中。这种方式的好处…

Android Studio - adb.exe已停止运作的解决方案

adb.exe 是Android Debug Bridge 的缩写&#xff0c;它是Android SDK 中的一个调试工具&#xff0c;允许开发者通过命令行界面与设备进行交互&#xff0c;执行各种操作&#xff0c;如运行设备的shell、管理模拟器或设备的端口映射、在计算机和设备之间上传/下载文件、将本地APK…

微服务经纬:Eureka驱动的分布式服务网格配置全解

微服务经纬&#xff1a;Eureka驱动的分布式服务网格配置全解 在微服务架构的宏伟蓝图中&#xff0c;服务网格&#xff08;Service Mesh&#xff09;作为微服务间通信的独立层&#xff0c;承担着流量管理、服务发现、故障恢复等关键任务。Eureka&#xff0c;Netflix开源的服务发…

我的GeneFace++部署与运行之旅

文章目录 引言项目背景概述重要性分析结论 环境准备1. 安装CUDA2. 安装Python依赖3. 准备3DMM模型&#xff08;BFM2009&#xff09;及其他数据 运行官方 Demo训练自己的视频数据准备训练推理测试 遇到的问题与解决方案问题一&#xff1a;cuda 安装完发现版本不对问题二&#xf…

C语言 底层逻辑详细阐述结构体 #结构体的声明 #结构体的初始化 #结构体成员访问 #结构体传参

文章目录 前言 一、结构体的基础知识 二、结构体的初始化 1、结构体类型声明&#xff1a; 2、结构体成员的类型 3、结构体变量的初始化&#xff1a; 三、结构体成员访问 四、结构体传参 总结 前言 基于自我理解的角度来讲结构体&#xff1b; 一、结构体的基础知识 结构是一些…

网络安全-网络设备及其配置1

1.路由器 路由器的作用 路由器是连接多个网络的设备&#xff0c;主要功能是数据包的转发和路由选择。路由器通过分析目标IP地址&#xff0c;将数据包从一个网络转发到另一个网络&#xff0c;确保不同网络之间的通信。它在家庭、企业和互联网服务提供商&#xff08;ISP&#x…

vue3入门特性

Vue 3 是一个用于构建用户界面的渐进式 JavaScript 框架&#xff1a;核心思想是通过声明式的方式来描述 UI 组件&#xff0c;并通过响应式系统来自动更新 UI。Vue 3 引入了许多新特性和改进&#xff0c;包括组合式 API&#xff08;Composition API&#xff09;、更好的性能和 T…

NSSCTF中24网安培训day2中web题目

[SWPUCTF 2021 新生赛]ez_unserialize 这道题目考察php反序列化的知识点 打开题目&#xff0c;发现没有提示&#xff0c;我们试着用御剑扫描目录文件&#xff0c;发现存在robots.txt的文件 接着访问这个文件&#xff0c;发现是一段php反序列化代码&#xff0c;我们需要进行序…

论文翻译:通过云计算对联网多智能体系统进行预测控制

通过云计算对联网多智能体系统进行预测控制 文章目录 通过云计算对联网多智能体系统进行预测控制摘要前言通过云计算实现联网的多智能体控制系统网络化多智能体系统的云预测控制器设计云预测控制系统的稳定性和一致性分析例子结论 摘要 本文研究了基于云计算的网络化多智能体预…

【常见开源库的二次开发】基于openssl的加密与解密——Base58比特币钱包地址——算法分析(三)

目录&#xff1a; 目录&#xff1a; 一、base58(58进制) 1.1 什么是base58&#xff1f; 1.2 辗转相除法 1.3 base58输出字节数&#xff1a; 二、源码分析&#xff1a; 2.1源代码&#xff1a; 2.2 算法思路介绍&#xff1a; 2.2.1 Base58编码过程&#xff1a; 2.1.2 Base58解码过…

Leetcode—146. LRU 缓存【中等】(shared_ptr、unordered_map、list)

2024每日刷题&#xff08;143&#xff09; Leetcode—146. LRU 缓存 先验知识 list & unordered_map 实现代码 struct Node{int key;int value;Node(int key, int value): key(key), value(value) {} };class LRUCache { public:LRUCache(int capacity): m_capacity(capa…

实战案例:用百度千帆大模型API开发智能五子棋

前随着人工智能技术的迅猛发展&#xff0c;各种智能应用层出不穷。五子棋作为一款经典的棋类游戏&#xff0c;拥有广泛的爱好者。将人工智能技术与五子棋结合&#xff0c;不仅能提升游戏的趣味性和挑战性&#xff0c;还能展现AI在复杂决策问题上的强大能力。在本篇文章中&#…

Elasticsearch:将Logstash日志存到elasticsearch中

配置Logstash # cat syslog02.conf #filename:syslog02.conf #注意这个是要用#号注释掉 input{file{path > ["/var/log/*.log"]} } output{elasticsearch {#建议将搜索引擎不要和应用部署到一台服务器&#xff0c;我们介绍就同台服务器hosts > ["192.168…

habase集群安装

解压到/opt/softs目录 tar -zxvf hbase-2.4.11-bin.tar.gz -C /opt/softs/ 改名 mv hbase-2.4.11/ hbase2.4.11 配置环境变量 修改/etc/profile vim /etc/profile 添加 #HBASE_HOME export HBASE_HOME/opt/softs/hbase2.4.11 export PATH$PATH:$HBASE_HOME/bin 修改其中的…

怎么把自己写的组件发布到npm官方仓库??

一.注册npm账号 npm官网 1.注册npm 账号 2.登陆 3.登陆成功 二.搭建一个vue 项目 具体步骤参考liu.z Z 博客 或者初始化一个vue项目 vue create XXX &#xff08;工程名字&#xff09;运行代码 npm run serve三.组件封装 1.在src文件下建一个package文件&#xff0…

深度学习计算机视觉中, 多尺度特征和上下文特征的区别是?

在深度学习和计算机视觉中&#xff0c;多尺度特征和上下文特征都是用来捕捉和理解图像中复杂模式和关系的重要概念&#xff0c;但它们的侧重点有所不同。 多尺度特征 (Multi-scale Features) 多尺度特征是指在不同尺度上对图像进行特征提取&#xff0c;以捕捉不同尺度的物体特…

借助 Aspose.Words,在 C# 中将 Word 转换为 JPG

有时我们需要将 Word 文档转换为图片&#xff0c;因为 DOC 或 DOCX 文件在不同设备上的显示可能会有所不同&#xff0c;但图像&#xff08;例如 JPG 格式&#xff09;在任何地方看起来都一样。 Aspose.Words 是一种高级Word文档处理API&#xff0c;用于执行各种文档管理和操作…

基于深度学习的语音识别

基于深度学习的语音识别技术利用深度学习模型将语音信号转换为文本。这项技术在智能助理、自动字幕生成、电话客服系统、语音翻译等领域有着广泛的应用。以下是对这一领域的系统介绍&#xff1a; 1. 任务和目标 语音识别的主要任务和目标包括&#xff1a; 语音转文本&#x…