当前位置:网站首页>[深入浅出]三位数排序
[深入浅出]三位数排序
2022-08-03 11:36:00 【ceshyong】
题目链接【深基3.例8】三位数排序 - 洛谷https://www.luogu.com.cn/problem/P5715
题目描述
给出三个整数a,b,c(0≤a,b,c≤100),要求把这三位整数从小到大排序。
输入
输入三个整数 a,b,ca,b,c,以空格隔开。
输出格式
输出一行,三个整数,表示从小到大排序后的结果。
样例组
样例1
输入 1 14 5
输出 1 5 14
样例2
输入 2 2 2
输出 2 2 2
题目解析
这道题目有三种做法。
第一种做法是将每个数都存入A数组,然后用sort()将每个数排序就可以了。(呃......)
第二种做法则借助于max和min。读入三个数,然后输出三个数中的最小值。然后用if逐个判断那个数是不是三个数中的最小值,并将其改为三个数中任意两个数中的一个数。最后输出它们中的最大值和最小值。
第三种做法则需要使用swap()函数。如果A比B小,交换A,B;如果B比C小,交换B,C;如果A比B小,交换A,B;最后输出A,B,C就行了。
AC代码
第一种做法:
#include<bits/stdc++.h>
using namespace std;
int a[4];
int main()
{
cin>>a[1]>>a[2]>>a[3];
sort(a+1,a+4);
cout<<a[1]<<' '<<a[2]<<' '<<a[3];
return 0;
}
第二种做法:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b,c,d;
cin>>a>>b>>c;d=min(min(a,b),c);
cout<<d<<' ';
if(d==a) a=b;
else if(d==b) b=c;
else c=a;
cout<<min(min(a,b),c)<<' '<<max(max(a,b),c);
return 0;
}
第三种做法:
#include<bits/stdc++.h>
using namespace std;
int a,b,c;
int main()
{
cin>>a>>b>>c;
if(a<b) swap(a,b);
if(b<c) swap(b,c);
if(a<b) swap(a,b);
cout<<c<<' '<<b<<' '<<a;
return 0;
}
这道题目就这么多。涨粉一个,更新一篇!
边栏推荐
猜你喜欢
LeetCode 899 Ordered queue [lexicographical order] HERODING's LeetCode road
云原生 Dev0ps 实践
ETL data cleaning case in MapReduce
shell编程-测试
使用.NET简单实现一个Redis的高性能克隆版(一)
Simple implementation of a high-performance clone of Redis using .NET (1)
零拷贝、MMAP、堆外内存,傻傻搞不明白...
Lease recovery system based on PHP7.2+MySQL5.7
asdn涨薪技术之apifox+Jenkins如何玩转接口自动化测试
微信小程序获取用户手机号码
随机推荐
Matlab学习12-图像处理之图像增强
代码分析Objective-C中的深拷贝与浅拷贝
opencv学习—VideoCapture 类基础知识「建议收藏」
LeetCode刷题笔记:105.从前序与中序遍历序列构造二叉树
dataset数据集有哪些_数据集类型
深度学习:文本CNN-textcnn
后台图库上传功能
LeetCode-142. 环形链表 II
viewstub 的详细用法_pageinfo用法
LyScript implements memory stack scanning
一文带你弄懂 CDN 技术的原理
矩阵的计算[通俗易懂]
redis基础知识总结——数据类型(字符串,列表,集合,哈希,集合)
【MySQL功法】第4话 · 和kiko一起探索MySQL中的运算符
缓存--伪共享问题
CDH6.3.2开启kerberos认证
劝退背后。
Redis发布订阅和数据类型
RTP协议分析
实至名归!九章云极DataCanvas公司荣获智能制造领域多项殊荣