[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.rhkb.cn/news/377541.html

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

相关文章

js 请求blob:https:// 图片

方式1 def get_file_content_chrome(driver, uri):result driver.execute_async_script("""var uri arguments[0];var callback arguments[1];var toBase64 function(buffer){for(var r,nnew Uint8Array(buffer),tn.length,anew Uint8Array(4*Math.ceil(t/…

【LSTM和GRU极简,和最新的TT也就是状态】机器学习模型来学习状态

LSTM&#xff08;长短期记忆网络&#xff09;中的关键参数包括输入门、遗忘门、输出门、细胞状态和隐藏状态。以下是如何进行推理计算的示例&#xff1a; LSTM参数和公式 输入门&#xff08;i_t&#xff09;&#xff1a;决定输入的信息量。 遗忘门&#xff08;f_t&#xff0…

处理在 electron 中使用开启了懒加载的 el-image 后,窗口最大化或窗口尺寸变化后图片无法显示的问题

文章目录 1、问题描述2、详情动图3、解决思路4、解决方案5、效果展示 1、问题描述 在 electron 中使用 el-image 时&#xff0c;开启了懒加载后&#xff0c;发现只有当窗口滚动后&#xff0c;图片才会显示&#xff0c;即便图片已经处于窗口的可视区域。当拖动窗口使其尺寸变大…

解决ESLint和Prettier冲突的问题

在配置了ESLint的项目中使用Prettier进行格式化可能会出现冲突&#xff0c;不如Prettier配置了使用双引号&#xff0c;ESLint配置了单引号&#xff0c;当然可以一个一个改成一样的配置&#xff0c;但是比较麻烦。我发现可以直接使用ESLint的规则进行格式化。在VSCode配置过程如…

FPGA上板项目(二)——PLL测试

目录 实验内容实验原理实验步骤实验结果 实验内容 将差分时钟信号转化为 192MHz 时钟信号作为输出。 实验原理 PLL&#xff0c;即锁相环&#xff0c;一种反馈控制电路&#xff0c;具有时钟倍频、分频、相位偏移和可编程占空比的功能。 实验步骤 添加 clocking wizard IP核&…

Spring Boot 集成 RabbitMQ

依赖与配置 在 pom.xml 中引入 RabbitMQ 相关依赖 <!-- AMQP 依赖, RabbitMq --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId><version>3.2.7</version> &…

ElementUI el-select 组件动态设置disabled后,高度变更的问题解决办法

问题描述 Vue2 项目在使用 el-select 组件时&#xff0c;动态将disabled变更为了 true&#xff0c;元素的高度发生了变化。 问题原因 通过浏览器开发人员工具面板&#xff0c;发现&#xff0c;组件内的 input 元素被动态设置了height的样式&#xff1a; 在项目中检查后并…

微软Office PLUS办公插件下载安装指南

微软OfficePLUS插件下载安装指南 简介&#xff1a; OfficePLUS微软官方出品的Office插件 &#xff0c;OfficePLUS拥有30万高质量模板素材&#xff0c;能帮助Word、Excel、Powerpoint、PDF等多种办公软件提升效率&#xff0c;具有智能化、模板质量高、运行快、稳定性强等优点。…

prompt第二讲-langchain实现中英翻译助手

文章目录 prompt模板 (prompt template)langchain 中的prompt模板 (prompt template)langchain实现中英翻译助手 prompt模板 (prompt template) 开篇我介绍了在llm中&#xff0c;通常输入的那个字符串会被我们称之为prompt&#xff0c;下面就是一个中英文翻译助手的prompt例子…

探索智能合约在金融科技中的前沿应用与挑战

随着区块链技术的发展和普及&#xff0c;智能合约作为其核心应用之一&#xff0c;在金融科技&#xff08;FinTech&#xff09;领域中展现出了巨大的潜力和挑战。本文将深入探讨智能合约的基本概念、前沿应用案例&#xff0c;以及面临的技术挑战和发展趋势&#xff0c;旨在帮助读…

解决QT creator中文乱码问题

1.首先设置文本编辑器为UTF-8 先在工具-选项-文本编辑器-behavior部分选择文件编码为UTF-8&#xff0c;紧接着是选择“如果编码是UTF-8则添加”&#xff0c;如下图 2.设置ext code for tools 为system 具体解决办法是 工具-选项-环境-interfaces这一栏有一个“Text code for to…

基于R语言的水文、水环境模型优化技术及快速率定方法与多模型案例

在水利、环境、生态、机械以及航天等领域中&#xff0c;数学模型已经成为一种常用的技术手段。同时&#xff0c;为了提高模型的性能&#xff0c;减小模型误用带来的风险&#xff1b;模型的优化技术也被广泛用于模型的使用过程。模型参数的快速优化技术不但涉及到优化本身而且涉…

MySQL篇:事务

1.四大特性 首先&#xff0c;事务的四大特性&#xff1a;ACID&#xff08;原子性&#xff0c;一致性&#xff0c;隔离性&#xff0c;持久性&#xff09; 在InnoDB引擎中&#xff0c;是怎么来保证这四个特性的呢&#xff1f; 持久性是通过 redo log &#xff08;重做日志&…

Andriod Stdio新建Kotlin的Jetpack Compose简单项目

1.选择 No Activity 2.选择kotlin 4.右键选择 在目录MyApplication下 New->Compose->Empty Project 出现下面的画面 Finish 完成

聊聊常见的分布式ID解决方案

highlight: xcode theme: vuepress 为什么要使用分布式ID&#xff1f; 随着 Web 开发技术的不断发展&#xff0c;单体的系统逐步走向分布式系统。在分布式系统中&#xff0c;使用分布式 ID(Distributed IDs)主要是为了在没有单点故障的情况下生成唯一标识符。这些唯一标识符在很…

【Linux】进程间通信——命名管道和共享内存

目录 命名管道&#xff08;named pipe&#xff09; 命令行中使用 代码中使用 共享内存&#xff08;shared memory&#xff09; shmget ipcs命令 shmctl shmat/shmdt 简单通信 命名管道&#xff08;named pipe&#xff09; 之前我们说了匿名管道&#xff0c;但是匿名管道…

为什么要使用加密软件?

一、保护数据安全&#xff1a;加密软件通过复杂的加密算法对敏感数据进行加密处理&#xff0c;使得未经授权的人员即使获取了加密数据&#xff0c;也无法轻易解密和获取其中的内容。这极大地提高了数据在存储、传输和使用过程中的安全性。 二、遵守法律法规&#xff1a;在许多国…

无人机图像目标检测

本仓库是人工智能课程的课程作业仓库&#xff0c;主要是完成无人机图像目标检测的任务&#xff0c;我们对visdrone数据集进行了处理&#xff0c;在yolo和ssd两种框架下进行了训练和测试&#xff0c;并编写demo用于实时的无人机图像目标检测。 requirements依赖&#xff1a; ss…

ubuntu虚拟机安装ssh时报错 正在等待缓存锁

问题&#xff1a; 连接vm ubuntu虚拟机安装ssh时报错 正在等待缓存锁。 sudo apt install openssh-server 处理办法 sudo rm /var/lib/dpkg/lock-frontend sudo rm /var/cache/apt/archives/lock sudo rm /var/lib/dpkg/lock

K8S ingress 初体验 - ingress-ngnix 的安装与使用

准备环境 先把 google 的vm 跑起来… gatemanMoreFine-S500:~/projects/coding/k8s-s/service-case/cloud-user$ kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-master Ready control-plane,master 124d v1.23.6 k8s-no…