求三个整数中的中位数

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

  

 

转载于:https://www.cnblogs.com/yfish/p/9779192.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值