C语言比较三个数按照从大到小排列

        今天让我们来看看如何比较三个数的大小并且排列它们吧,相信大家都有自己的思路,今天我来和大家分享一下我在做这道题时的感悟。

        第一种方法

        首先根据题目要求,我们需要先比较三个数,之后对它们进行从大到小的一个输出,我们看看它有几种可能,分别是x最大的xyz,xzy和y最大的yxz,yzx,还有z最大的zxy,zyx,这就是所有数字的所有大小排序了,我们首先看看第一种解法,也是咋们在写代码的时候没有思路或者想不到思路时最容易使用的方法,好像有个词叫暴力解法。

        

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{int x, y, z;scanf("%d %d %d", &x, &y, &z);//比较三个数字,按照从大到小输出if (x > y&&x > z){if(y>z)printf("%d %d %d", x,y,z);elseprintf("%d %d %d", x, z, y);}if (y > x && y > z){if (z > x)printf("%d %d %d", y, z, x);elseprintf("%d %d %d", y, x, z);}if (z > y && z > x){if (x > y)printf("%d %d %d", z ,x, y);elseprintf("%d %d %d", z, y, x);}return 0;
}

        在这个代码中,我们按照题目要求,对每一种情况都进行输出,得到那种结果就输出哪种结果,但是我们在写的时候会发现,这个代码好多步骤是不是冗余,为什么我们每次得到结果都要输出一下呢,我们对程序进行了改进。

        第二种方法

        

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//优化
int main()
{int x, y, z;scanf("%d %d %d", &x, &y, &z);int tmp = 0;//比较三个数字,按照从大到小输出if (x < y){tmp = x;x = y;y = tmp;}if (x<z){tmp = x;x = z;z = tmp;}if (y<z){tmp = y;y = z;z = tmp;}printf("%d %d %d", x,y,z);return 0;
}

        在这个代码中我们对三个数进行分析之后发现我们只需要找到最大数和最小数就好,对它们进行排序,最后那个数字放置在中间。

        首先我们输入的是xyz,输出也是xyz,我们按照顺序输出的话,我们就要保证x中的一定是最大值,z中的一定是最小值,只要我们保证这两个数字的位置正确,那么这个程序题就没有问题。

        那么当我们x中的值小的时候,我们就需要将我们的最大值传给x,比较小的那个传给另一个,我们需要置换x中的值,这里我们设置一个变量tmp用来临时存放我们在置换操作中需要拿出来的数。

        

        大概是这个样子,我们将x中的值给tmp,之后将z的值给x,最后将tmp的值给z,这样就完成了一次置换。

        第三种方法

        

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void swap(int* px, int* py)
{int tmp = 0;tmp = *px;*px = *py;*py = tmp;
}
int main()
{int x, y, z;scanf("%d %d %d", &x, &y, &z);//比较三个数字,按照从大到小输出if (x < y){swap(&x, &y);}if (x < z){swap(&x, &z);}if (y < z){swap(&y, &z);}printf("%d %d %d", x, y, z);return 0;
}

        这里我们使用函数的方式解决问题,将置换操作写为函数swap,之后通过调用函数的方式来进行对xy或其他数字之间的置换。

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

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

相关文章

如何在CentOS7部署Wiki.js知识库并实现分享好友公网远程使用【内网穿透】

文章目录 1. 安装Docker2. 获取Wiki.js镜像3. 本地服务器打开Wiki.js并添加知识库内容4. 实现公网访问Wiki.js5. 固定Wiki.js公网地址 不管是在企业中还是在自己的个人知识整理上&#xff0c;我们都需要通过某种方式来有条理的组织相应的知识架构&#xff0c;那么一个好的知识整…

基于PHP的新闻管理系统(用户发布版)

有需要请加文章底部Q哦 可远程调试 基于PHP的新闻管理系统(用户发布版) 一 介绍 此新闻管理系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。系统角色分为用户和管理员。本新闻管理系统采用用户发布新闻&#xff0c;管理员审核后展示模式。 技术栈&am…

Vue element-plus 导航栏 [el-menu]

导航栏 [el-menu] Menu 菜单 | Element Plus el-menu有很多属性和子标签&#xff0c;为网站提供导航功能的菜单。 常用标签&#xff1a; 它里面有两个子标签。el-menu-item&#xff0c;它其实就是el-menu每一个里面的item&#xff0c;item就是真实匹配到路由的每个栏目&#…

如何给图片添加水印?

如何给图片添加水印&#xff1f;在现代职场中&#xff0c;图片的使用已经成为了日常工作的一部分&#xff0c;而给图片添加水印也逐渐成为了一种常见的需求。无论是在设计、广告、营销还是其他领域&#xff0c;给工作中的图片加水印都有其重要性和实用性。工作中给图片加水印的…

Nginx常用命令说明

1、Nginx常用命令说明** 命令说明start nginx启动nginxtaskkill /f /t /im nginx.exe彻底关闭nginx&#xff08;关闭nginx其他服务&#xff0c;这样才能彻底关闭&#xff09;nginx -h查看帮助信息nginx -v查看Nginx版本nginx -s stop停用Nginxnginx -s quit优雅的停用Nginx&am…

C# 排序的多种实现方式(经典)

一、 对数组进行排序 最常见的排序是对一个数组排序&#xff0c;比如&#xff1a; int[] aArray new int[8] { 18, 17, 21, 23, 11, 31, 27, 38 }; 1、利用冒泡排序进行排序&#xff1a; &#xff08;即每个值都和它后面的数值比较&#xff0c;每次拿出最小值&#xff09; s…

LeetCode-239. 滑动窗口最大值【队列 数组 滑动窗口 单调队列 堆(优先队列)】

LeetCode-239. 滑动窗口最大值【队列 数组 滑动窗口 单调队列 堆&#xff08;优先队列&#xff09;】 题目描述&#xff1a;解题思路一&#xff1a;其实是一道队列题&#xff0c;单调队列。队头是最大值&#xff0c;依次递减&#xff0c;所以需要在入队出队的时候维护单调队列的…

linux设置Nacos自启动

前提&#xff1a;已经安装好nacos应用 可参考&#xff1a;Nacos单机版安装-CSDN博客 1. 创建nacos.service 1.1 在 /lib/systemd/system 目录底下&#xff0c;新建nacos.service文件 [Unit] Descriptionnacos Afternetwork.target[Service]Typeforking# 单机启动方式&#…

Qt实现无边框圆角窗口

我们在使用QDialog的时候许多场景下都不需要默认的标题栏&#xff0c;这时候我们需要设置他的标志位。 this->setWindowFlags(Qt::FramelessWindowHint);由于现代的窗口风格&#xff0c;我们一般会设置窗口为圆角边框的样式&#xff0c;我们可以使用qss的方式来进行设置。 …

STM32——超声测距HC_SR04记录

一、HC_SR04简述 HC-SR04超声波测距模块可提供 2cm-400cm的非接触式距离感测功能&#xff0c;测距精度可达高到 3mm&#xff1b;模块包括超声波发射器、接收器与控制电路。 基本工作原理&#xff1a; (1)采用IO 口TRIG 触发测距&#xff0c;给最少10us 的高电平信呈。 (2)模块…

自定义 Unity Scene 的界面工具

介绍 文档中会进行SceneView的自定义扩展&#xff0c;实现显示常驻GUI和添加自定义叠加层&#xff08;Custom Overlay&#xff09;。 最近项目开发用回了原生的Unity UI相关内容。对于之前常用的FairyGUI来说&#xff0c;原生的UGUI对于UI同学来讲有些不太方便。再加上这次会…

自定义口令加入群聊怎么弄?用词令关键词直达口令加入微信群延长群二维码7天有效方法

微信口令加入群聊有二种方式 一、微信面对面建群 微信面对面建群的方式适合现实中的朋友之间相互认识且想要建立群聊的场景。微信面对面建群口令加入群聊的有效距离是在几十米范围内&#xff0c;因此只能是附近几十米范围内的人&#xff0c;正确输入微信面对面建群口令后才可…

pyinstaller用法详解2

本文使用创作助手。 pyinstaller基础步骤 PyInstaller是一个用于将Python应用程序打包成可执行文件的工具。它可以将Python代码及其依赖项转换为独立的可执行文件&#xff0c;使得应用程序可以在没有安装Python解释器的系统上运行。 以下是使用PyInstaller的一般步骤&#x…

台球王子,Android小游戏开发

使用 Android Studio 开发了一款休闲游戏 —— 《台球王子》 关键词&#xff1a;台球 A. 项目描述 台球作为一项优雅、策略性强的运动&#xff0c;在众多游戏类型中却相对较少。因此&#xff0c;开发《台球王子》小游戏&#xff0c;可以让更多玩家能够轻松享受到台球的乐趣。…

Python问题列表

文章目录 1、使用pip安装的模块都存放到哪里了&#xff1f;2、安装fitz包报错&#xff0c;如何解决&#xff1f;3、python代码运行时&#xff0c;控制台输出乱码如何解决。4、vscode中第三方库不自动补齐 1、使用pip安装的模块都存放到哪里了&#xff1f; 答&#xff1a; pip是…

Python:基础知识

一、标准数据类型 python为脚本语言&#xff0c;不用像Java和C那样在变量前面指定数据类型。 1.Number数字 python 3支持float、int、bool、complex数据类型&#xff0c;通过内置函数type()可以查询变量所指类型。 注意&#xff1a;数值的除法包含两个运算符&#xff1a;/ 返回…

易图讯智慧感知应急指挥三维电子沙盘系统设计

易图讯&#xff08;www.3dgis.top&#xff09;智慧感知应急指挥三维电子沙盘系统充分融合了物联网与人工智能识别分析技术&#xff0c;实现了从输入到输出的高效智能响应。在物联网方面&#xff0c;系统通过各类传感器和设备&#xff0c;实时采集环境、设备状态等关键数据&…

Adobe ColdFusion 任意文件读取漏洞复现(CVE-2024-20767)

0x01 产品简介 Adobe ColdFusion是美国奥多比(Adobe)公司的一套快速应用程序开发平台。该平台包括集成开发环境和脚本语言,将可扩展、改变游戏规则且可靠的产品的愿景变为现实。 0x02 漏洞概述 由于 Adobe ColdFusion 的访问控制不当,未经身份认证的远程攻击者可以构造恶…

Qt:常见的exec()函数

一、Qt中的exec()方法到处可见&#xff0c;例如&#xff1a; QCoreApplicaton::exec() QApplication::exec() QDialog::exec() QThread::exec() QMenu::exec() 那么&#xff0c;这些exec()的作用是什么呢&#xff1f; 作用是开启一个循环&#xff0c;执行一个事件&#xff0c…

用Java 实现省级市的递归节点案例代码

当实现递归算法时&#xff0c;需要注意以下几点&#xff1a; 1.基本情况&#xff08;Base Case&#xff09;&#xff1a; 确保递归方法能够在某个条件下终止递归。这个条件通常是问题的最简单情况&#xff0c;没有必要再继续递归下去了。 2.递归调用&#xff1a; 确保递归方…