解题思路:据题目要求,按从小到大排序,那么就需要得到最大值,最小值以及中间值才能排序。也就是说要让电脑知道,什么是最大,什么是最小然后再来排序。
大小的比较有做差法(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分
7 人评分
IP判断 (C++代码)浏览:731 |
简洁的代码浏览:1485 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:671 |
C语言程序设计教程(第三版)课后习题11.3 (C语言代码)浏览:1059 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:690 |
蛇行矩阵 (C语言代码)浏览:792 |
Pascal三角 (C语言代码)浏览:707 |
C语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:595 |
买不到的数目 (C语言代码)浏览:3135 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:726 |