C言語 int整数型変数宣言割り算について
前回の簡単な計算では【 int 】整数型変数宣言を少し勉強しました。
その場合割り算については
除算 10/20 答えは 0 割った小数点以上の整数を出力(小数点以下は表示しません。)
剰余 10%20 答えは 5 割った余りの整数を出力(小数点以上のものは表示しません。)
と申し上げました。これは【 int 】を使っているため、実行結果が上記のものになってしまうんです。
除算サンプル 10/20
上記ソースコードの実行結果
通常答えは0.5ですが 0 しか出力していません。
これは整数を扱う宣言をしているためです。
10÷20=0.5 ← 整数を扱う場合小数点以上を出力 |
除算
除算もう一つサンプルです。5/2
上記ソースコードの実行結果
5÷2=2.5 ← intの場合小数点以上しか出力されません。 |
整数型変数宣言での剰余を求める計算について
剰余は、割ったあまりを求める計算なのですが整数型の剰余を求める場合には定義があります。
まず、割った小数点以下は切り捨てます。
例えば 6÷7=0.8571 ですがこの場合は小数点以下を切り捨てた上で下記の式に当てはめます。
r = x – y * n
r:剰余 x:割られる数 y:割る数 n:小数点以下を切り捨てた数字 例:6÷7=0.8571 小数点以下は切り捨てますので nは0です。 上記の計算式に当てはめます。 r = 6-7*0 従って a=6%7 の結果は a=6 となります。 |
剰余 10%20 のサンプル
上記ソースコードの実行結果
10÷20=0.5
小数点以下は切り捨て r = x – y * n の式に当てはめます。 r = 10 - 20 × 0 r = 10 |
剰余 3%3 のサンプル
上記ソースコードの実行結果
3÷3=1
小数点以下は切り捨て r = x – y * n の式に当てはめます。 r = 3 - 3 × 1 r = 0 |
コメント