求三个整数中的中位数

比如三个整数是 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);
}

  

 

posted @ 2018-10-12 17:00  eatwhat  阅读(3049)  评论(0编辑  收藏  举报