如何在C中更简洁地将多个数字设置为它们的绝对值?

问题描述 投票:0回答:2

如何简化这三个简单的 if 条件?

if(v.x < 0)
{
    v.x *= -1;
}
if(v.y < 0)
{
    v.y *= -1;
}
if(v.z < 0)
{
    v.z *= -1;
}
c if-statement simplify
2个回答
10
投票
#include <stdlib.h>
...
v.x = abs(v.x);
v.y = abs(v.y);
v.z = abs(v.z);

labs
llabs
fabs
(
<math.h>
) 等,具体取决于您的号码类型。


1
投票

你可以做这样的事情:

v.x = (v.x < 0) ? (v.x * -1) : (v.x) ;
v.y = (v.y < 0) ? (v.y * -1) : (v.y) ;
v.z = (v.z < 0) ? (v.z * -1) : (v.z) ;

这使用了 C 三元运算符

© www.soinside.com 2019 - 2024. All rights reserved.