Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

【C言語】ユーザーが入力した配列の種類(偶数・奇数・混合)を判定するプログラム

問題

配列に含まれる要素が、すべて偶数なのか、すべて奇数なのか、あるいはその両方が混在しているのかを判定するCプログラムを作成します。

解決方法

ユーザーが整数の配列を入力すると、プログラムがその配列の種類を画面に表示します。

例1:入力「5 3 1」→ 出力「Odd Array(奇数配列)」

例2:入力「2 4 6 8」→ 出力「Even Array(偶数配列)」

例3:入力「1 2 3 4 5」→ 出力「Mixed Array(混合配列)」

アルゴリズム

以下の手順に従って、ユーザーが入力した配列の種類を判定します。

ステップ1:実行時に配列のサイズ(要素数)を読み込む。
ステップ2:配列の各要素を入力する。
ステップ3:配列のすべての要素が奇数であれば「Odd」と出力する。
ステップ4:配列のすべての要素が偶数であれば「Even」と出力する。
ステップ5:いずれにも該当しない場合は「Mixed」と出力する。

サンプルコード

以下は、ユーザーが入力した配列の種類を判定するCプログラムの完全なコードです。

#include<stdio.h>
int main(){
    int n;
    printf("enter no of elements:");
    scanf("%d",&n);
    int arr[n];
    int i;
    int odd = 0, even = 0;
    printf("enter the elements into an array:\n");
    for(i = 0; i < n; i++){
        scanf("%d",&arr[i]);
    }
    for(i = 0; i < n; i++){
        if(arr[i] % 2 == 1)
            odd++;
        if(arr[i] % 2 == 0)
            even++;
    }
    if(odd == n)
        printf("Odd Array");
    else if(even == n)
        printf("Even Array");
    else
        printf("Mixed Array");
    return 0;
}

プログラムの解説

このプログラムの仕組みはシンプルです。まず、奇数と偶数を数えるためのカウンタ変数 oddeven を0で初期化します。次に、各要素を2で割った余りを調べ、余りが1であれば奇数として odd を、余りが0であれば偶数として even をそれぞれインクリメントします。

最終的な判定は以下の通りです。

  • odd が要素数 n と一致 → すべて奇数なので「Odd Array」
  • even が要素数 n と一致 → すべて偶数なので「Even Array」
  • どちらでもない場合 → 奇数と偶数が混在しているので「Mixed Array」

注意点: 負の奇数(例:-3)を扱う場合、C言語では -3 % 2 の結果が -1 となるため、arr[i] % 2 == 1 の条件では正しく判定できません。負の数も考慮したい場合は、arr[i] % 2 != 0 を使うと安全です。

実行結果

上記のプログラムをコンパイルして実行すると、次のような出力が得られます。

Run 1:
enter no of elements:5
enter the elements into an array:
2 4 8 10 12
Even Array

Run 2:
enter no of elements:5
enter the elements into an array:
1
23
45
16
68
Mixed Array

1回目の実行では入力された5つの要素がすべて偶数のため「Even Array」と表示され、2回目の実行では奇数と偶数が混在していたため「Mixed Array」と表示されています。このように、たった一つのループ処理で配列全体の性質を効率よく判定できるのがポイントです。

  1. Pythonで配列内の最大の要素を見つける方法を解説

    この記事では、「配列の中から最大の要素を求める」という問題の解決方法について詳しく解説します。 問題の概要 問題文:与えられた配列に対して、その中で最も大きい要素を計算して求める必要があります。 ここではブルートフォース(総当たり)アプローチを使用します。これは、配列全体を先頭から順番に走査しながら各要素を比較し、その時点での最大値を更新していくというシンプルかつ確実な手法です。 実装例 以下に具体的なコードを示します。 # 最大値を求める関数 def largest(arr, n): # 最大要素の初期値として最初の要素を設定 max = arr[0] # 配列全体を

  2. Pythonで配列(リスト)の合計を求める方法をわかりやすく解説

    この記事では、配列(リスト)の合計値を求めるという問題に対して、Pythonでの解決策とアプローチをわかりやすく解説します。 問題の定義 配列が入力として与えられたとき、その配列に含まれるすべての要素の合計を計算することを目標とします。 例えば、[1, 2, 3, 4, 5] という配列が与えられた場合、出力は 15 になります。 アプローチ1:ループを使った素朴な方法(総当たり法) 最も基本的な方法は、リストを先頭から順に走査し、各要素を合計用の変数に加算していくやり方です。手順は以下の通りです。 合計を格納する変数を 0 で初期化します。 for ループでリストの各要素を取り出し、順番に