【C言語】数値が5の倍数かどうか判定する

この記事では、C言語を使って数値が5の倍数かどうかを判定するプログラムの作り方を解説します。

プログラムの基本的な構成から、必要な知識、具体的なコードの書き方まで、初心者でも理解しやすいように丁寧に説明します。

また、応用例として複数の数値を判定する方法や、コードの再利用性を高めるための関数化についても紹介します。

目次から探す

5の倍数判定で必要な知識

5の倍数かどうかを判定するプログラムを作成するためには、いくつかの基本的なC言語の知識が必要です。

ここでは、その基礎知識について詳しく解説します。

割り算と余りの演算子

数値が5の倍数かどうかを判定するためには、割り算と余りの演算子を理解することが重要です。

割り算演算子と余り演算子を使うことで、数値を5で割った結果や余りを取得することができます。

割り算演算子 /

割り算演算子 / は、2つの数値を割り算するために使用されます。

例えば、10 / 52 という結果を返します。

割り算演算子は整数同士の割り算の場合、結果も整数になります。

小数点以下は切り捨てられるため、注意が必要です。

int a = 10;
int b = 5;
int result = a / b; // resultは2

余り演算子 %

余り演算子%は、2つの数値を割り算した際の余りを取得するために使用されます。

例えば、10 % 31 という結果を返します。

余り演算子を使うことで、数値が特定の数の倍数かどうかを簡単に判定することができます。

int a = 10;
int b = 3;
int remainder = a % b; // remainderは1

条件分岐の基本

プログラムの中で特定の条件に応じて異なる処理を行うためには、条件分岐を使用します。

条件分岐を使うことで、数値が5の倍数かどうかを判定し、その結果に応じて異なるメッセージを表示することができます。

if文の使い方

条件分岐の基本的な構文として、if 文があります。

if文は、指定した条件が真(true)である場合にのみ、特定の処理を実行します。

if文の基本的な構文は以下の通りです。

if (条件) {
    // 条件が真の場合に実行される処理
}

例えば、数値が5の倍数かどうかを判定する場合、以下のように書くことができます。

int number = 10;
if (number % 5 == 0) {
    printf("%dは5の倍数です。\n", number);
} else {
    printf("%dは5の倍数ではありません。\n", number);
}

条件式の書き方

if文の条件式は、真偽値(trueまたはfalse)を返す式でなければなりません。

条件式には比較演算子や論理演算子を使用することができます。

例えば、以下のような条件式が考えられます。

条件式説明
number == 5numberが5と等しい場合
number != 5numberが5と等しくない場合
number > 5numberが5より大きい場合
number < 5numberが5より小さい場合
number >= 5numberが5以上の場合
number <= 5numberが5以下の場合

これらの条件式を組み合わせることで、複雑な条件分岐を実現することができます。

以上が、5の倍数判定で必要な基本的な知識です。

次に、実際に5の倍数かどうかを判定するプログラムを作成してみましょう。

5の倍数かどうかを判定するプログラム

プログラムの全体構成

5の倍数かどうかを判定するプログラムは、以下のような手順で構成されます。

  1. 必要なヘッダファイルのインクルード
  2. main関数の定義
  3. 標準入力から数値を取得
  4. 5の倍数かどうかを判定
  5. 判定結果を出力

必要なヘッダファイル

C言語で標準入力や標準出力を行うためには、stdio.hというヘッダファイルをインクルードする必要があります。

これにより、printfscanfといった関数が使用可能になります。

#include <stdio.h>

main関数の概要

main関数はC言語プログラムのエントリーポイントです。

プログラムの実行が開始される場所であり、ここに全体の処理を記述します。

int main() {
    // ここにプログラムの処理を記述
    return 0;
}

入力の受け取り

標準入力からの数値の取得

ユーザーからの入力を受け取るためには、標準入力から数値を取得する必要があります。

これにはscanf関数を使用します。

scanf関数の使い方

scanf関数は、標準入力からデータを読み取るための関数です。

以下のように使用します。

int number;
scanf("%d", &number);

ここで、%dは整数を読み取るためのフォーマット指定子であり、&numberは読み取った値を格納する変数のアドレスを指定します。

5の倍数かどうかの判定

余り演算子 % を使った判定方法

5の倍数かどうかを判定するためには、余り演算子 % を使用します。

ある数値を5で割った余りが0であれば、その数値は5の倍数です。

if (number % 5 == 0) {
    // 5の倍数である場合の処理
} else {
    // 5の倍数でない場合の処理
}

if文を使った条件分岐

if文を使って条件分岐を行います。

上記の例では、number % 5 == 0という条件式が真であれば、5の倍数であると判定します。

結果の出力

printf関数の使い方

printf関数は、標準出力にデータを表示するための関数です。

以下のように使用します。

printf("5の倍数です\n");

判定結果の表示方法

判定結果に応じて、適切なメッセージを表示します。

例えば、5の倍数であれば「5の倍数です」と表示し、そうでなければ「5の倍数ではありません」と表示します。

完成したコード

以上の内容を踏まえて、5の倍数かどうかを判定するプログラムの完成したコードは以下の通りです。

#include <stdio.h>
int main() {
    int number;
    // ユーザーからの入力を受け取る
    printf("数値を入力してください: ");
    scanf("%d", &number);
    // 5の倍数かどうかを判定
    if (number % 5 == 0) {
        printf("%dは5の倍数です\n", number);
    } else {
        printf("%dは5の倍数ではありません\n", number);
    }
    return 0;
}

このプログラムを実行すると、ユーザーが入力した数値が5の倍数かどうかを判定し、結果を表示します。

例えば、ユーザーが 10 を入力した場合、「10は5の倍数です」と表示されます。

応用例

ここでは、数値が7の倍数かどうかを判定するプログラムの応用例を紹介します。

基本的な判定方法を理解した上で、複数の数値を一度に判定する方法や、コードの再利用性を高めるための関数化について解説します。

複数の数値を判定する

複数の数値を一度に判定する場合、配列を使うと便利です。

配列を使うことで、複数の数値を一つの変数にまとめて管理できます。

配列を使った複数の数値の判定

まず、配列を使って複数の数値を格納し、それぞれの数値が7の倍数かどうかを判定するプログラムを作成します。

#include <stdio.h>
int main() {
    int numbers[] = {14, 21, 22, 35, 49, 50}; // 判定する数値の配列
    int size = sizeof(numbers) / sizeof(numbers[0]); // 配列の要素数を計算
    for (int i = 0; i < size; i++) {
        if (numbers[i] % 7 == 0) {
            printf("%d は7の倍数です。\n", numbers[i]);
        } else {
            printf("%d は7の倍数ではありません。\n", numbers[i]);
        }
    }
    return 0;
}

このプログラムでは、numbersという配列に複数の数値を格納し、forループを使って各数値が7の倍数かどうかを判定しています。

ループ処理の導入

上記のプログラムでは、forループを使って配列の各要素を順番に処理しています。

ループ処理を使うことで、同じ処理を繰り返し実行することができます。

関数化して再利用する

プログラムの再利用性を高めるために、判定部分を関数に分離します。

関数を使うことで、同じ処理を複数の場所で簡単に再利用できます。

判定部分を関数に分離

まず、数値が7の倍数かどうかを判定する関数を定義します。

#include <stdio.h>
// 7の倍数かどうかを判定する関数
int isMultipleOfSeven(int number) {
    return number % 7 == 0;
}
int main() {
    int numbers[] = {14, 21, 22, 35, 49, 50}; // 判定する数値の配列
    int size = sizeof(numbers) / sizeof(numbers[0]); // 配列の要素数を計算
    for (int i = 0; i < size; i++) {
        if (isMultipleOfSeven(numbers[i])) {
            printf("%d は7の倍数です。\n", numbers[i]);
        } else {
            printf("%d は7の倍数ではありません。\n", numbers[i]);
        }
    }
    return 0;
}

関数の定義と呼び出し方法

上記のプログラムでは、isMultipleOfSevenという関数を定義し、数値が7の倍数かどうかを判定しています。

この関数は、引数として受け取った数値が7の倍数であれば1(真)を返し、そうでなければ0(偽)を返します。

関数を定義することで、メインの処理部分がシンプルになり、コードの可読性が向上します。

また、同じ判定処理を他の場所でも簡単に再利用できるようになります。

以上が、数値が7の倍数かどうかを判定するプログラムの応用例です。

配列やループ、関数を使うことで、より柔軟で再利用性の高いプログラムを作成することができます。

目次から探す