数学中的绝对值定义为 x 的非负值,不考虑其符号。绝对值的表示法是变量 |x| 两侧的竖线。所以,从理论上来说|-16|将成为16.
现在,我怎样才能将它带入 C 编程语言?
最简单的方法是使用stdlib 中的abs API。
#include #include 整数主要的(){ printf("%dn", 绝对值(-16)); 返回0;}
登录后复制
但是,如果出现无法使用 stdlib 或任何库的情况怎么办?
我以前也经历过这种事,很无奈。因此,我决定使用我的Google-fu来学习如何在没有任何库的情况下实现绝对值。
立即学习“C语言免费学习笔记(深入)”;
然后,我找到了简单易实现的解决方案。
#include int 绝对值(int x);整数主要的(){ printf("%dn", 绝对值(-20)); 返回0;}整数绝对值(整数x){ 返回 x * ((x>0) - (x<0));}
登录后复制
来源解释得更好并且很容易理解。但让我惊讶的是,它如何利用C语言的特点。也就是说,在 C 中我们没有布尔数据类型。
在C语言中,要确定真或假,它使用整数值。零代表假,一代表真。那么,让我们看看括号中的值结果将如何:
(x>0): 如果 x 大于 0,则为 True (1),否则为 False (0)。(x 如果 x 小于 0,则为 True (1),否则为 False (0)。
让我们分解一下当x是正数时。
x==10结果 = x * ((x>0) - (x<0))结果 = 10 * ( 1 - 0 )结果 = 10 * 1结果 = 10
登录后复制
让我们分解一下当x为负数时。
x==-16结果 = x * ((x>0) - (x<0))结果 = -16 * ( 0 - 1 )结果 = -16 * -1结果 = 16
登录后复制
最后,如果 x 为零。
x==0结果 = x * ((x>0) - (x<0))结果 = 0 * ( 0 - 0 )结果 = 0 * 0结果 = 0
登录后复制
当 x 为正数或零时,绝对方法永远不会改变 x。但是,当我们将 x 设置为负数时,我们通过乘以 -1 对其取负,从而从 x 中得到正数。
多么有趣的解决方案。
以上就是C语言中的绝对数的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2557363.html