解题思路:据题目要求,按从小到大排序,那么就需要得到最大值,最小值以及中间值才能排序。也就是说要让电脑知道,什么是最大,什么是最小然后再来排序。

大小的比较有做差法(a-b>0),做商法(a\b>1)等等……

首先我们先做简单的,求最大值和最小值。

做题做的多的可能立马就把      min=(a<b?a:b)<c?(a<b?a:b):c   给打出来了,大概意思就是通过比较得出最小值。通过a<b?a:b得出a,b中间的较小值,再用a,b中间的较小值和c对比……

但是我注意到一点,就是中间的值较为难求,这也是这里最难的地方(大概?)

一共就3个数字,我们要就事论事,既然最大值和最小值都十分的好求,那么为什么不能利用(中间值)=a+b+c-最大值-最小值    来求出中间值呢?这样不香吗?
注意事项:不要把;和:混淆了,不然很难看出什么地方错误了。

参考代码:

#include<stdio.h>

int main()

{

    int a,b,c,x1,x2,x3;

    scanf("%d%d%d",&a,&b,&c);

    x1=(a<b?a:b)<c?(a<b?a:b):c;

    x3=(a>b?a:b)>c?(a>b?a:b):c;

    x2=a+b+c-x1-x3;

    printf("%d %d %d",x1,x2,x3);

}


点赞(0)
 

0.0分

6 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 3 条评论

wwwanna 3年前 回复TA
厉害。。。。
努力c 3年前 回复TA
厉害。还可以这样完成!
克肆光神 4年前 回复TA
不喜勿喷,我只不过有感而发