如何简化这三个简单的条件?
if(v.x < 0)
{
v.x *= -1;
}
if(v.y < 0)
{
v.y *= -1;
}
if(v.z < 0)
{
v.z *= -1;
}
答案 0 :(得分: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 :(得分: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 ternary operator。