三个整数的排序
来源:互联网 发布:淘宝hd注销后无法登陆 编辑:程序博客网 时间:2024/05/18 03:01
#include <stdio.h>
int main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
if(a<=b&&b<=c) printf("%d %d %d\n",a,b,c);
else if(a<=c&&c<=b) printf("%d %d %d\n",a,c,b);
else if(b<=a&&a<=c) printf("%d %d %d\n",b,a,c);
else if(b<=a&&c<=a) printf("%d %d %d\n",b,c,a);
else if(c<=a&&a<=b) printf("%d %d %d\n",c,a,b);
else if(c<=a&&b<=a) printf("%d %d %d\n",c,b,a);
return 0;
}
int main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
if(a<=b&&b<=c) printf("%d %d %d\n",a,b,c);
else if(a<=c&&c<=b) printf("%d %d %d\n",a,c,b);
else if(b<=a&&a<=c) printf("%d %d %d\n",b,a,c);
else if(b<=a&&c<=a) printf("%d %d %d\n",b,c,a);
else if(c<=a&&a<=b) printf("%d %d %d\n",c,a,b);
else if(c<=a&&b<=a) printf("%d %d %d\n",c,b,a);
return 0;
}
对于三个数的大小比较,对初学者来说是特别容易出错的,可能就是6个if语句就以为解决了,而最后的答案却大相径庭。所以我们在思考问题的时候应该理清思路,站在算法的角度上来考虑问题。
以上的一段代码是用的一个if加上5个else if组成的,当第一个判断语句不符合则会跳入下一个判断语句,一直到符合或者代码结束。这里再介绍一种初学者很难想到的方法:
#include <stdio.h>
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",a,b,c);
return 0;
}
这里是通过增加了一个中间变量,本人觉得这种方法更直观,也很巧妙。
0 0
- 三个整数的排序
- 算法提高 三个整数的排序
- 算法提高 三个整数的排序
- 算法提高 三个整数的排序
- 蓝桥杯 算法提高 三个整数的排序
- 蓝桥杯 算法提高 三个整数的排序
- 蓝桥杯 算法提高 三个整数的排序
- 三个整数排序
- 三个整数排序程序报告
- 蓝桥杯 ADV-175 算法提高 三个整数的排序
- 蓝桥杯 ADV-175 算法提高 三个整数的排序
- 算法提高 ADV-175 三个整数的排序
- 冒泡排序之三个整数排序
- 冒泡排序的示例-使用冒泡排序,输入三个整数,按照从小到大的顺序排列输出
- 第3章:对三个整数排序
- 用指针将三个整数从小到大排序
- 求三个整数的最大值
- 比较三个整数的大小
- 图论之图形的表示方法(二)- 相邻表法/邻接表法
- 【JavaEE】经典JAVA EE企业应用实战-读书笔记9
- 比阿里巴巴fastjson更快的解析方法!
- CF # 389 Santa Claus and a Place in a Class
- HTTP深入浅出 http请求
- 三个整数的排序
- Netfilter 概述及其hook点
- [AHK]创建WScript.Shell对象执行DOS命令行并获取返回值
- Android-捕获运行时未捕获的异常
- Linux 用户的 3 个命令行小技巧
- 利用Collections.sort自定义排序
- java中String类的应用
- TSP_旅行商问题 - 蛮力法DFS(一)
- 编程艺术之数组2.1 求最小的k个数