卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章65787本站已运行420

C语言中的绝对数

c语言中的绝对数

数学中的绝对值定义为 x 的非负值,不考虑其符号。绝对值的表示法是变量 |x| 两侧的竖线。所以,从理论上来说|-16|将成为16.

现在,我怎样才能将它带入 C 编程语言

最简单的方法是使用stdlib 中的abs API。

#include <stdio.h>
#include <stdlib.h>

整数
主要的()
{
    printf("%dn", 绝对值(-16));
    返回0;
}
</stdlib.h></stdio.h>

但是,如果出现无法使用 stdlib 或任何库的情况怎么办

我以前也经历过这种事,很无奈。因此,我决定使用我的Google-fu来学习如何在没有任何库的情况下实现绝对值。

立即学习“C语言免费学习笔记(深入)”;

然后,我找到了简单易实现的解决方案。

#include <stdio.h>

int 绝对值(int x);

整数
主要的()
{
    printf("%dn", 绝对值(-20));
    返回0;
}

整数
绝对值(整数x)
{
    返回 x * ((x&gt;0) - (x



<p>来源解释得更好并且很容易理解。但让我惊讶的是,它如何利用C语言的特点。也就是说,在 C 中我们没有布尔数据类型。</p>

<p>在C语言中,要确定真或假,它使用整数值。零代表假,一代表真。那么,让我们看看括号中的值结果将如何:</p>

<ul>
<li>
<strong>(x&gt;0):</strong> 如果 x 大于 0,则为 True (1),否则为 False (0)。</li>
<li>
<strong>(x 如果 x 小于 0,则为 True (1),否则为 False (0)。</strong>
</li>
</ul>
<p>让我们分解一下当x是正数时。<br></p>

<pre class="brush:php;toolbar:false">x==10
结果 = x * ((x&gt;0) - (x



<p>让我们分解一下当x为负数时。<br></p>

<pre class="brush:php;toolbar:false">x==-16
结果 = x * ((x&gt;0) - (x



<p>最后,如果 x 为零。<br></p>

<pre class="brush:php;toolbar:false">x==0
结果 = x * ((x&gt;0) - (x



<p>当 x 为正数或零时,绝对方法永远不会改变 x。但是,当我们将 x 设置为负数时,我们通过乘以 -1 对其取负,从而从 x 中得到正数。</p>

<p>多么有趣的解决方案。</p>


          

            
        
卓越飞翔博客
上一篇: [WIP] JavaScript Vs Golang: Complexity
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏