c++一级 输入三个数,按照从小到大的顺序输出

news2024/9/29 23:22:19

在这里插入图片描述
这个题是2022年9月份c++一级的真题,它说难不难,说不难也难,评判标准主要看学生学到哪种程度以及
使用的是哪种方法。

首先来看用最基础的判断怎么做:

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

	return 0;
}

这是用排列组合的方式来做,有的同学也会直接两两个数进行判断,但那样实在太麻烦了,需要写很多层循环嵌套。

这种题还有另外的出法就是三个数求最大值,它用的打擂台的思想,我们也可以使用这种思路来做这个题。

#include<iostream>
using namespace std;
int main(){
	int a,b,c,max=0,min=0,m=0;
	cin>>a>>b>>c;
	max=a;
	if(max<b){
		max=b;
	}
	if(max<c){
		max=c;
	}
	min=a;
	if(min>b){
		min=b;
	}
	if(min>c){
		min=c;
	}
	m=(a+b+c)-max-min;
	cout<<min<<" "<<m<<" "<<max;
	return 0;
}

刚刚这两种做法都是用一级的知识点做的,c++里有一个函数叫sort,是可以直接对数据容器里的数据进行排序,但这个我们需要借助一维数组(使用sort必须导入算法库或者万能头

#include<algorithm>//算法库
#include<bits/stdc++.h>//万能头
using namespace std;
int main(){
	int a[3]={0};
	scanf("%d%d%d",&a[0],&a[1],&a[2]);
	sort(a,a+3);
	printf("%d %d %d",a[0],a[1],a[2]);
	return 0;
}

还要一种是交换值的方式,这一种就需要先简单说下它的原理了。

可以先想一下,如果现在有两瓶颜色不一样的水,我们怎样将它们进行交换呢?如果直接把一个杯子的水倒进另一个杯子,那水直接就会被覆盖掉。所以我们需要借助一个空杯子,比如A杯子和B杯子装的是颜色不一样的水,C杯子是空杯子,那我们只需要先把A杯子里的水倒进C杯子,这时A杯子的水空了就可以把B杯子的水倒进A杯子,然后再把C杯子装的A杯子的水再倒进B杯子了。(A -->C, B–>A, C–>A)

用编程来写就是:

    int  a=5,b=2,c=0;
	c=a;
	a=b;
	b=c;

再回到这个题用这个思路来做的程序就是:

#include<iostream>//算法库
using namespace std;
int main(){
  	int a, b, c, t;
     scanf("%d %d %d", &a, &b, &c);
     if (a < b)
     {
         t = a;
         a = b;
         b = t;
     }
     if (a < c)
     {
         t = a;
         a = c;
         c = t;
     }
     if (b < c)
     {
         t = b;
         b = c;
         c = t;
     }
     printf("%d %d %d", c, b, a);
	return 0;
}

好啦,同学们自己去试一试吧~

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

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

相关文章

macOS Ventura 13.5 (22G74) 正式版发布,ISO、IPSW、PKG 下载

macOS Ventura 13.5 (22G74) 正式版发布&#xff0c;ISO、IPSW、PKG 下载 本站下载的 macOS Ventura 软件包&#xff0c;既可以拖拽到 Applications&#xff08;应用程序&#xff09;下直接安装&#xff0c;也可以制作启动 U 盘安装&#xff0c;或者在虚拟机中启动安装。另外也…

Cesium态势标绘专题-正三角形(标绘+编辑)

标绘专题介绍:态势标绘专题介绍_总要学点什么的博客-CSDN博客 入口文件:Cesium态势标绘专题-入口_总要学点什么的博客-CSDN博客 辅助文件:Cesium态势标绘专题-辅助文件_总要学点什么的博客-CSDN博客 本专题没有废话,只有代码,代码中涉及到的引入文件方法,从上面三个链…

Cesium态势标绘专题-弓形(标绘+编辑)

标绘专题介绍:态势标绘专题介绍_总要学点什么的博客-CSDN博客 入口文件:Cesium态势标绘专题-入口_总要学点什么的博客-CSDN博客 辅助文件:Cesium态势标绘专题-辅助文件_总要学点什么的博客-CSDN博客 本专题没有废话,只有代码,代码中涉及到的引入文件方法,从上面三个链…

opencv-17 脸部打码及解码

使用掩模和按位运算方式实现的对脸部打码、解码实例 代码如下&#xff1a; import cv2 import numpy as np #读取原始载体图像 lenacv2.imread("lena.png",0) #读取原始载体图像的 shape 值 r,clena.shape masknp.zeros((r,c),dtypenp.uint8) mask[220:400,250:350…

UE虚幻引擎教程_生成云平台指定路径下的exe文件

市面上大量优秀的游戏都是基于UE制作的&#xff0c;UE虚幻引擎制作的作品可以在windows、mac、linux以及ps4、x-boxone、ios、android甚至是html5等平台上运行。本文介绍了UE虚幻引擎如何生成云平台指定路径下的EXE。 一、云平台会运行打包文件夹下指定路径的EXE文件 但有时候…

spring6——概述

文章目录 概述Spring 是什么&#xff1f;Spring 的狭义与广义Spring Framework特点Spring模块组成 概述 Spring 是什么&#xff1f; Spring 是一款主流的 Java EE 轻量级开源框架 &#xff0c;Spring 由“Spring 之父”Rod Johnson 提出并创立&#xff0c;其目的是用于简化 J…

数据可视化(2)

1.柱状图 #柱状图 #bar(x,height,width,*,aligncenter,**kwargs) #height柱子的高度&#xff0c;即y轴上的数据 #width数组的宽度&#xff0c;默认值0.8 #*表示后面的参数为匿名关键字&#xff0c;必须传入参数 #kwargs关键字参数x[1,2,3,4,5] height[random.randint(10,100)f…

智融SW3518S降压协议IC一款适合车充控制芯片

描述 SW3518S 是一款高集成度的多快充协议双口充电芯片&#xff0c; 支持 AC 口任意口快充输出&#xff0c; 支持双口独立限流。 其集成了 5A 高效率同步降压变换器&#xff0c; 支持 PPS/PD/QC/AFC/FCP/SCP/PE/SFCP/VOOC等多种快充协议&#xff0c; 最大输出 PD 100W&#xff…

在 vue3 中使用 ScrollReveal

文章目录 什么是 ScrollReveal安装使用介绍 什么是 ScrollReveal ScrollReveal 官网链接&#xff1a;https://scrollrevealjs.org/ ScrollReveal 是一个 JavaScript 库&#xff0c;用于在元素进入/离开视口时轻松实现动画效果。 先看个入门示例&#xff1a; ScrollReveal …

mac brew安装 node 踩坑日记- n切换node不生效

最近用了一个旧电脑开发&#xff0c;发现里面node管理混乱&#xff0c;有nvm、n和homebrew&#xff0c;导致切换node 切换不了&#xff0c;开发也有莫名其妙的错误。所以我打算重新装一下node&#xff0c;使用n做为管理工具。 1. 删除nvm cd ~ rm -rf .nvm2. 删除n sudo rm -…

HarmonyOS/OpenHarmony元服务开发-创建一个ArkTS卡片

在已有的应用工程中&#xff0c;创建ArkTS卡片&#xff0c;具体操作方式如下。 1.创建卡片。 2.根据实际业务场景&#xff0c;选择一个卡片模板。 3.在选择卡片的开发语言类型&#xff08;Language&#xff09;时&#xff0c;选择ArkTS选项&#xff0c;然后单击“Finish”&…

【RS】基于规则的面向对象分类

ENVI使用最多的工具就是分类&#xff0c;这也是很多卫星影像的用途。在ENVI中有很多分类工具&#xff0c;如最基础的监督分类&#xff08;最大似然法、最小距离、支持向量机、随机森林&#xff09;、非监督分类&#xff08;K-means、IsoData&#xff09;&#xff0c;还有面向对…

sqlserver 复制数据库数据

sqlserver 建立索引 alter table [dbo].[SYS_MQTT_MESSAGE_LOG_1] add constraint pk0230725 primary key (smml_id) 主键 建聚集索引 其他的字段要和排序字段一起建索引

家政服务小程序制作攻略揭秘

想要打造一个家政服务小程序&#xff0c;但是又不懂编程和设计&#xff1f;不用担心&#xff01;下面将为你详细介绍如何利用第三方平台&#xff0c;从零开始打造一个家政服务小程序。 首先&#xff0c;你需要找到一个适合的第三方平台&#xff0c;例如乔拓云网。在乔拓云网的【…

2023年Q2京东小家电市场数据分析(京东数据运营)

伴随人们对生活品质追求的提高&#xff0c;以及拥有新兴消费理念的年轻人逐渐成为消费主力&#xff0c;功能新潮、外观精致的小家电经常在电商平台销售榜单里“榜上有名”。本期我们便一起来分析Q2京东小家电市场中&#xff0c;一些较为热门的精致生活小电的行业大盘变动情况。…

stm32 IIC通信

文章目录 IIC 通信一、硬件电路二、IIC时序基本单元三、IIC时序1.指定地址写2.当前地址读3.指定地址读 IIC 通信 IIC总线是一种通用数据总线&#xff0c;有两根通信线&#xff08;SCL(串行时钟总线),SDA&#xff08;串行数据总线&#xff09;&#xff09;。 特点&#xff1a;同…

学生管理系统-04VueX

一、本章目标 vuex的简介【重点】 掌握vuex的基本使用 掌握辅助函数来操作vuex 掌握vuex的模块化【难点】 掌握vuex的持久化 完成Tabs选项卡的二次封装 vuex的使用 封装组件 组件内路由守卫 二、vuex的简介 1、回顾组件之间的通讯 父组件向子组件通讯&#xff1a;通…

2. 两数相加

题目介绍 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&#xff0c;这两个数都…

Hadoop 之 Hbase 配置与使用(四)

Hadoop 之 Hbase 配置与使用 一.Hbase 下载1.Hbase 下载 二.Hbase 配置1.单机部署2.伪集群部署&#xff08;基于单机配置&#xff09;3.集群部署1.启动 hadoop 集群2.启动 zookeeper 集群3.启动 hbase 集群4.集群启停脚本 三.测试1.Pom 配置2.Yml 配置3.Hbase 配置类4.Hbase 连…

LeetCode | Heap | 502.

502. IPO 是贪心算法in general。 一共两个变量&#xff1a;profit和capital。profit要求是找最大的。capital要求小于w。 两种筛选方法&#xff1a;把capital符合要求的排个序&#xff0c;找profit最大的。按照profit排序&#xff0c;从大到小找capital满足条件的。 哪种更…