[C言語] 偶数か奇数か判定する方法
C言語で整数が偶数か奇数かを判定するには、主にビット演算子を使用します。
具体的には、整数を2で割った余りを求めるために、%
演算子を使用します。
例えば、number % 2 == 0
であれば、そのnumber
は偶数であり、number % 2 != 0
であれば奇数です。
この方法は、整数の最下位ビットをチェックすることで、効率的に偶奇を判定できます。
ビット演算を用いる場合、number & 1
が0
であれば偶数、1
であれば奇数と判定できます。
- 剰余演算子を使った偶数と奇数の判定方法
- if文を用いた条件分岐の実装例
- 配列内の偶数と奇数のカウントや合計の計算方法
- 偶数と奇数を別々の配列に分ける方法
- 剰余演算子以外の判定方法や負の数、浮動小数点数の扱い方
C言語での基本的な判定方法
C言語で偶数か奇数かを判定する方法は、非常にシンプルで効率的です。
ここでは、基本的な判定方法をいくつか紹介します。
剰余演算子を使った判定
偶数か奇数かを判定する最も一般的な方法は、剰余演算子 %
を使用することです。
剰余演算子は、ある数を別の数で割ったときの余りを返します。
偶数は2で割り切れる数であり、奇数は2で割ったときに余りが1になる数です。
- 偶数:
number % 2 == 0
- 奇数:
number % 2 != 0
if文を使った条件分岐
剰余演算子を使って判定した結果を、if
文を用いて条件分岐させることで、偶数か奇数かを判定することができます。
以下にその基本的な構造を示します。
#include <stdio.h>
int main() {
int number = 5; // 判定したい数値
// 偶数か奇数かを判定
if (number % 2 == 0) {
printf("%d は偶数です。\n", number);
} else {
printf("%d は奇数です。\n", number);
}
return 0;
}
簡単なプログラム例
上記のif
文を使った条件分岐を含むプログラムを実行すると、以下のような結果が得られます。
5 は奇数です。
このプログラムでは、変数 number
に代入された値が偶数か奇数かを判定し、結果を標準出力に表示します。
number
の値を変更することで、他の数値に対しても同様に判定を行うことができます。
応用例
C言語で偶数と奇数を判定する基本的な方法を理解したところで、これを応用したいくつかの例を紹介します。
これらの例は、配列を使ってより複雑な処理を行う方法を示しています。
配列内の偶数と奇数をカウントする
配列内の要素が偶数か奇数かを判定し、それぞれの数をカウントするプログラムを作成します。
#include <stdio.h>
int main() {
int numbers[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int evenCount = 0;
int oddCount = 0;
int size = sizeof(numbers) / sizeof(numbers[0]);
for (int i = 0; i < size; i++) {
if (numbers[i] % 2 == 0) {
evenCount++;
} else {
oddCount++;
}
}
printf("偶数の数: %d\n", evenCount);
printf("奇数の数: %d\n", oddCount);
return 0;
}
偶数の数: 5
奇数の数: 5
このプログラムは、配列 numbers
内の偶数と奇数の数をそれぞれカウントし、結果を表示します。
偶数と奇数の合計を計算する
配列内の偶数と奇数の合計をそれぞれ計算するプログラムを作成します。
#include <stdio.h>
int main() {
int numbers[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int evenSum = 0;
int oddSum = 0;
int size = sizeof(numbers) / sizeof(numbers[0]);
for (int i = 0; i < size; i++) {
if (numbers[i] % 2 == 0) {
evenSum += numbers[i];
} else {
oddSum += numbers[i];
}
}
printf("偶数の合計: %d\n", evenSum);
printf("奇数の合計: %d\n", oddSum);
return 0;
}
偶数の合計: 30
奇数の合計: 25
このプログラムは、配列 numbers
内の偶数と奇数の合計を計算し、結果を表示します。
偶数と奇数を別々の配列に分ける
配列内の偶数と奇数を別々の配列に分けるプログラムを作成します。
#include <stdio.h>
int main() {
int numbers[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int evenNumbers[10];
int oddNumbers[10];
int evenIndex = 0;
int oddIndex = 0;
int size = sizeof(numbers) / sizeof(numbers[0]);
for (int i = 0; i < size; i++) {
if (numbers[i] % 2 == 0) {
evenNumbers[evenIndex++] = numbers[i];
} else {
oddNumbers[oddIndex++] = numbers[i];
}
}
printf("偶数: ");
for (int i = 0; i < evenIndex; i++) {
printf("%d ", evenNumbers[i]);
}
printf("\n");
printf("奇数: ");
for (int i = 0; i < oddIndex; i++) {
printf("%d ", oddNumbers[i]);
}
printf("\n");
return 0;
}
偶数: 2 4 6 8 10
奇数: 1 3 5 7 9
このプログラムは、配列 numbers
内の偶数と奇数をそれぞれ evenNumbers
と oddNumbers
に分けて格納し、結果を表示します。
よくある質問
まとめ
C言語で偶数と奇数を判定する方法は、剰余演算子やビット演算を使うことで簡単に実現できます。
配列を用いた応用例を通じて、より複雑な処理も可能であることを学びました。
これらの知識を活用して、実際のプログラミングに役立ててみてください。