整数の絶対値を求める方法
#include <stdlib.h> // インクルードが必要
int a = -500;
int ret = 0;
ret = abs(a);
printf("%d", ret);
ret = abs(-1000);
printf("%d", ret);
500
1000
C言語で絶対値を求めるにはabs関数を使います。
abs関数の使い方はとても簡単で、
引数に指定した値もしくは、変数の絶対値を戻り値として返します。
stdlib.hのインクルードが必要です。
double型の絶対値を求める方法
#include <math.h> // インクルードが必要
double d = -333.777;
double ret = 0.0;
ret = fabs(d);
printf("%lf\n", ret);
ret = fabs(-0.668);
printf("%lf\n", ret);
333.777000
0.668000
double型の絶対値を求めるにはfabs関数を使います。
今度はmath.hのインクルードが必要です。
スポンサーリンク
if文で絶対値を求める方法
int d = -300;
int ret = 0;
if (d > 0) {
ret = d;
} else {
ret = -d;
}
printf("%d\n", ret);
300
abs関数を使わなくても絶対値を求める事ができます。
値がプラスの時は値をそのまま返し、
値がマイナスの時は、マイナスを掛けて返します。
分かりやすく書くなら、(-1 * d); となります。
条件演算子を使って絶対値を求める方法
int d = -300;
int ret = 0;
ret = (d > 0) ? d : -d;
printf("%d\n", ret);
300
条件演算子を使って1行で書く事ができました。
マクロを使って絶対値を求める方法
#define ABS(num) ((num) > 0 ? (num) : -(num))
int i = -300;
double d = -111.555;
printf("%d\n", ABS(i));
printf("%lf\n", ABS(d));
printf("%lf\n", ABS(-0.3));
300
111.555000
0.300000
マクロで絶対値を求める方法は、
データ型を指定しなくても良いので、とても便利です。
これで絶対値を求める事ができるようになりました。