栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

《C语言程序设计:现代方法》第2版第14章练习题9的b

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

《C语言程序设计:现代方法》第2版第14章练习题9的b

是求一个MEDIAN(x ,y , z) ,三个整数的中值,看到网上不多,有一个用两数差之间的乘积来判断(估计是利用两数差的乘积和0比),看上去也有点复杂。这里就提供一个相对比较直观的算法。

1、嵌套的条件判断函数求最大值和最小值

注意到:

x > y ? x : y

这个可以得到x 和 y 中的较大值。所以稍加考虑,就可以得出三个数的最大值解法

( x> y ? x : y ) > z ? ( ( x > y ) ? x : y ) : z

然后反过来就可以得到三个数的最小值,就是把大于号反过来。

( x < y ? x : y ) < z ? ( ( x < y ) ? x : y ) : z

2 、如何求得中间值

一开始比较难以想到 ,后来发现三个值求得最大、最小,那么剩下的就是中间值,所以如果是三书之和前去前两个数,就是中间值,所以有:

((x) + (y) + (z) )- (((x)>(y)?(x):(y))>(z)?((x)>(y)?(x):(y)):(z)) - ( (((x) < (y))?(x):(y))< (z)?(((x)<(y))?(x):(y)):(z))

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/982390.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号