【C言語】mod演算子がない?剰余算する方法を解説

この記事では、C言語でmod演算子の代替方法を紹介します。

剰余算を行うためのいくつかの方法を学び、それぞれの方法の使い方と実行結果を確認することができます。

初心者の方にもわかりやすく解説していきますので、ぜひ参考にしてください。

目次から探す

mod演算子の代替方法

C言語には、剰余算を行うためのmod演算子が存在しません。

しかし、代替方法を使うことで剰余算を実現することができます。

以下では、いくつかの代替方法を紹介します。

%演算子を使う方法

C言語には、剰余算を行うための%演算子があります。

この演算子を使うことで、簡単に剰余算を行うことができます。


#include <stdio.h>
int main() {
    int dividend = 10;
    int divisor = 3;
    int remainder = dividend % divisor;
    printf("剰余算の結果: %d\n", remainder);
    return 0;
}

上記のコードでは、10を3で割った余りを求めています。

%演算子を使うことで、剰余算を簡単に行うことができます。

実行結果

剰余算の結果: 1

fmod関数を使う方法

C言語の数学ライブラリには、剰余算を行うためのfmod関数があります。

この関数を使うことで、浮動小数点数の剰余算を行うことができます。


#include <stdio.h>
#include <math.h>
int main() {
    double dividend = 10.5;
    double divisor = 3.2;
    double remainder = fmod(dividend, divisor);
    printf("剰余算の結果: %f\n", remainder);
    return 0;
}

上記のコードでは、10.5を3.2で割った余りを求めています。

fmod関数を使うことで、浮動小数点数の剰余算を行うことができます。

実行結果

剰余算の結果: 0.900000

割り算と掛け算を組み合わせる方法

剰余算を行うための別の方法は、割り算と掛け算を組み合わせる方法です。

具体的には、割り算の商を求めてから、商と除数を掛け算することで剰余を求めます。


#include <stdio.h>
int main() {
    int dividend = 10;
    int divisor = 3;
    int quotient = dividend / divisor;
    int remainder = dividend - (quotient * divisor);
    printf("剰余算の結果: %d\n", remainder);
    return 0;
}

上記のコードでは、10を3で割った余りを求めています。

割り算の商を求めてから、商と除数を掛け算することで剰余を求めることができます。

実行結果

剰余算の結果: 1

割り算と掛け算を使った剰余算のアルゴリズム

剰余算を行うための別のアルゴリズムは、割り算と掛け算を使った方法です。

具体的には、割り算の商を求めてから、商と除数を掛け算し、元の値から引いていくことで剰余を求めます。


#include <stdio.h>
int main() {
    int dividend = 10;
    int divisor = 3;
    int remainder = dividend;
    while (remainder >= divisor) {
        remainder -= divisor;
    }
    printf("剰余算の結果: %d\n", remainder);
    return 0;
}

上記のコードでは、10を3で割った余りを求めています。

割り算の商を求めてから、商と除数を掛け算し、元の値から引いていくことで剰余を求めることができます。

実行結果

剰余算の結果: 1

以上が、C言語でmod演算子の代替方法を紹介したものです。

それぞれの方法を使って剰余算を行うことができますので、目的に応じて適切な方法を選択してください。

目次から探す