【C言語】数値が自然数か判定する方法を解説

C言語でプログラミングを始めたばかりの方へ、この記事では「自然数」を判定する方法をわかりやすく解説します。

自然数とは0を含む正の整数のことです。

具体的には、数値が整数であるかどうか、そしてその数値が0以上であるかどうかを確認する方法を学びます。

これを理解することで、プログラムの中で自然数を正確に扱えるようになります。

目次から探す

自然数の判定方法

自然数とは、0を含む正の整数のことを指します。

C言語で数値が自然数かどうかを判定するためには、まずその数値が整数であること、次にその数値が0以上であることを確認する必要があります。

以下では、具体的な方法について解説します。

整数かどうかの判定

整数かどうかを判定するためには、数値の型に応じた方法を用います。

C言語では、整数型(int型)と浮動小数点型(float型double型)があります。

それぞれの型に対して、整数かどうかを判定する方法を見ていきましょう。

int型の数値の判定

int型の数値は、すでに整数であるため、特別な判定は不要です。

ただし、プログラムの中でint型の変数が自然数かどうかを確認するためには、その値が0以上であることを確認する必要があります。

#include <stdio.h>
int main() {
    int num = 5;
    if (num >= 0) {
        printf("%dは自然数です。\n", num);
    } else {
        printf("%dは自然数ではありません。\n", num);
    }
    return 0;
}

このプログラムでは、変数numが0以上であるかどうかを確認し、結果を出力しています。

float型やdouble型の数値の判定

float型double型の数値が整数かどうかを判定するためには、小数部分が0であるかどうかを確認する必要があります。

これには、数値を整数部分と小数部分に分けて比較する方法が一般的です。

#include <stdio.h>
#include <math.h>
int main() {
    double num = 5.0;
    if (num == (int)num) {
        printf("%.1fは整数です。\n", num);
    } else {
        printf("%.1fは整数ではありません。\n", num);
    }
    return 0;
}

このプログラムでは、変数numint型にキャストし、元の値と比較することで整数かどうかを判定しています。

正の数かどうかの判定

次に、数値が正の数かどうかを判定する方法について解説します。

自然数であるためには、数値が0以上である必要があります。

0以上の数値の判定

数値が0以上であるかどうかを判定するためには、単純にその数値が0以上であるかを確認します。

これは、int型float型double型のいずれの場合でも同様です。

#include <stdio.h>
int main() {
    double num = 5.0;
    if (num >= 0) {
        printf("%.1fは0以上の数です。\n", num);
    } else {
        printf("%.1fは0以上の数ではありません。\n", num);
    }
    return 0;
}

このプログラムでは、変数numが0以上であるかどうかを確認し、結果を出力しています。

負の数の排除

負の数を排除するためには、数値が0未満でないことを確認します。

これも、int型float型double型のいずれの場合でも同様です。

#include <stdio.h>
int main() {
    double num = -3.5;
    if (num < 0) {
        printf("%.1fは負の数です。\n", num);
    } else {
        printf("%.1fは負の数ではありません。\n", num);
    }
    return 0;
}

このプログラムでは、変数numが負の数であるかどうかを確認し、結果を出力しています。

以上の方法を組み合わせることで、C言語で数値が自然数かどうかを判定することができます。

具体的には、数値が整数であり、かつ0以上であることを確認することで、自然数であるかどうかを判定します。

目次から探す