【C言語入門】絶対値を計算する関数の使い方(abs/labs/fabsf/fabs)

数学でよく使われる絶対値は聞いたことがありますか?絶対値は負の値を取らないので、二つの値の差を調べたいときなどに便利です。

C言語では絶対値を計算するためのabs関数などがあるので簡単に求めることができます。

この記事では、絶対値とは

  • abs関数でint型の絶対値を計算する方法
  • labs関数でlong型の絶対値を計算する方法
  • fabsf関数でfloat型の絶対値を計算する方法
  • fabs関数でdouble型の絶対値を計算する方法
  • 絶対値の関数をabs関数を使わずに自作する方法


までの基本的な内容から、応用的な内容までに関しても解説していきます。

絶対値とは

絶対値とは簡単にいうと、数値からマイナスを取ってプラスの値を得たいときに使います。数学では、絶対値は 「|a|」 のように使いますが、C言語ではabs関数を使います。

実際のプログラムでは、変数の値をプラスの値で欲しいときや、二つの変数を引いた差をプラスにして欲しいときなどに使われます。

絶対値を返す関数の使い方

abs関数でint型の絶対値を計算する方法

関数が何か処理をするときには、「このデータを使って処理をしてほしい」というときに関数へ受け渡す値の「引数」と、計算した結果を返す「戻り値」というものがあります。abs関数はint型の変数を引数にします。戻り値はその引数の絶対値となります。

abs関数を使うためには、「stdlib.h」という関数のライブラリをインクルードする必要があります。それでは、実際のプログラムを見ていきましょう。

実行結果:

このようにabs関数を使うことで、絶対値を取得することができました。

labs関数でlong型の絶対値を計算する方法

先に述べたようにabs関数はint型を引数に取るといいました。では、long型の場合にはどのようにするのでしょうか?

そこで登場するのが、labs関数です。labs関数は、long型を引数にして、その絶対値を返します。

実行結果:

fabsf関数でfloat型の絶対値を計算する方法

同じようにfloat型の場合は、fabsf関数を使います。ただ、今回インクルードするのは、「math.h」となっていますので気をつけてください。

実行結果:

fabs関数でdouble型の絶対値を計算する方法

double型の場合は、fabs関数を使って求めていきます。

実行結果:

abs関数を使わずに絶対値を計算する方法

ここまでabs関数について見ていきましたが、abs関数がどのような動きをしているのか見ていきましょう。

if-else文を使う方法

まずはじめに、if-else文を使ってabs関数と同じ動作をさせた場合の例を見てみましょう。

実行結果:

このプログラムでは、if-else文を使って値が0よりも大きい場合は、値をそのまま返して、逆に0よりも小さい場合にはマイナスをかけることで正の値にします。

三項演算子を使う方法

三項演算子を用いると1行で書くこともできます。三項演算子とは、if-else文を短く書くことができる演算子となっています。

三項演算子を使うと、

と書くことができます。

三項演算子を用いて1行で書く方法を次のプログラムで確認してみましょう。

実行結果:

このようにif-else文を三項演算子に置き換えて、1行で書くことができました。

絶対値のまとめ

いかがだったでしょうか?今回はabs関数などを使って絶対値を求める方法を解説しました。絶対値は負の値を取らないので、二つの値の差を調べるときなどに使用してください。

もし、絶対値を求める方法を忘れてしまったらこの記事を確認してください。

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

MoritaIssei

ご閲覧いただきありがとうございます。森田一世と申します。プログラマーとしてRaspberry piを使ったり、記事を作成しています。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説