剰余演算子
CoddyのC++ジャーニー「基礎」セクションの一部 — レッスン 17/74。
剰余演算子 % は、除算の余りを返します。C++では、シンプルな構文で使用されます:
result = dividend % divisor;- dividend: 割られる数。
- divisor: 被除数を割る数。
- result: 除算の余り。
例えば:
result = 10 % 3;ここでは、10を3で割っています。3は10の中に3回入り、余りは1になります。したがって、resultは1になります。
通常、剰余演算(モジュロ)は数値が偶数か奇数かを確認するために使用されます:
- 数値が偶数の場合、2で割ると余りは0になります。
- 数値が奇数の場合、2で割ると余りは1になります。
C++で浮動小数点数(double型)を扱う際、剰余演算子 % を直接使用することはできません。代わりに、<cmath> ライブラリの fmod() 関数を使用する必要があります。これは剰余演算子と同様に動作しますが、小数の精度を保持します。例えば:
#include <cmath>
double result = fmod(5.2, 2.0);
// 結果は 1.2 です仕組みは次のとおりです。2.0は5.2の中に2回入り(4.0)、余りは1.2(5.2 - 4.0 = 1.2)となります。
別の例:
double result = fmod(7.8, 3.5);
// result は 0.8 です除数が被除数より大きい場合、結果は被除数と等しくなります。これは % と fmod() の両方に当てはまります。
5 % 10 = 5
3 % 7 = 3
fmod(2.5, 8.0) = 2.5なぜでしょうか?除数は0回しか収まらないため、被除数全体が余りとなります。
チャレンジ
初心者3つの変数、a (int)、b (double)、c (int)をそれぞれ9、2.6、11という値で初期化するコードを記述してください。
その後、以下の変数を初期化してください。
d (int):aを2で割った余りを保持します。e (int):aを3で割った余りを保持します。f (double):bを1.5で割った余りを保持します。g (double):bを3.9で割った余りを保持します。h (int):cを10で割った余りを保持します。
結果を確認し、異なる被除数と除数が結果にどのように影響するかを見てみましょう。
自分で試してみよう
#include <iostream>
#include <cmath>
int main() {
// 以下にコードを入力してください
// 以下の行は変更しないでください
std::cout << "a = " << a << std::endl;
std::cout << "b = " << b << std::endl;
std::cout << "c = " << c << std::endl;
std::cout << "d = " << d << std::endl;
std::cout << "e = " << e << std::endl;
std::cout << "f = " << f << std::endl;
std::cout << "g = " << g << std::endl;
std::cout << "h = " << h << std::endl;
return 0;
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。