求三个整数中的中位数
比如三个整数是 10 12 11,输出11
还是按照从结果出发思考问题
我们用middle变量来存放中位数
那么肯定有int middle
用户输入三个数分别是a b c
最后的结果无非是a是中位数 或者b是中位数 或者c是中位数
如果a是中位数则,middle=a
那么a是中位数满足什么条件呢?
想不出来没关系,我们可以举个例子
a是总位数,要么是这种情况
8 7 9 要么是 8 9 7,则一定满足(8-7)(8-9)小于0
也就是(a-b)*(a-c)<0
其它情况也是同样的道理,这种思考问题的方法真的挺不错的。
int main(void) { int middle; int a, b, c; scanf_s("%d %d %d",&a,&b,&c); if ((a-b)*(a-c)<0) { middle = a; } if ((b-a)*(b-c)<0) { middle = b; } if ((c-a)*(c-b)<0) { middle = c; } printf("%d",middle); }