三整数排序。输入三个整数,从小到大排序后输出。

样例输入:

20 7 33

样例输出:

7 20 33

【分析】

a、b、c这三个整数一共有6种全排列情况:abc,acb, bac, bca, cab, cba;

最简单的方法就是设计6个if 语句。

#include<stdio.h>
using namespace std;
int main() {
	int a, b, c;
	scanf_s("%d %d %d", &a, &b, &c);
	 if (a <= b && a <= c)
		printf("%d %d %d\n", a, b, c);
	else if (a <= c && c <= b)
		printf("%d %d %d\n", a, c, b);//关于a最小的两种情况
	else if (b <= a && a <= c)
		printf("%d %d %d\n", b, a, c);
	else if (b <= c && c <= a)
		printf("%d %d %d\n", b, c, a);//关于b最小的两种情况
	else if (c <= a && a <= b)
		printf("%d %d %d\n", c, a, b);
	else if (c <= b && b <= a)
		printf("%d %d %d\n", c, b, a);//关于c最小的两种情况
	return 0;

}

        另一种思路是把a,b,c三个变量本身变成a<=b<=c的形式,也就是首先检查a,b,若a>b,则交换a,b;接下来检查a与c,最后检查b与c。

        

#include<stdio.h>
using namespace std;
int main() {
	int a, b, c;
	scanf_s("%d%d%d", &a ,& b ,& c);
	if (a >  b) {
		int t = a;
		a = b;
		b = t;
	}//执行完毕之后a<=b
	if (a > c) {
		int t = a;
		a = c;
		c = t;
	}//执行完毕之后a<=c
	if (b > c) {
		int t = b;
		b = c;
		c = t;
	}//判断 b与c的大小关系
	printf("%d%d%d\n", a, b, c);
	return 0;
}

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值