練習 2(提出プログラム名:p0302.c)
サンプルプログラム 2 (sample2.c) を p0302.c という別の名前のファイルにコピーしなさい.そして,p0302.c を編集して以下の例のように実行できるプログラムを作りなさい.
このプログラムでは 2 つの整数を読み込み,大きい方※の値が小さい方の値の何倍であるか(比率)を表示させている.ただし,比率は小数点以下第2位までを表示させるものとする.
※2 つの整数が等しい場合,厳密には「大きい方」と「小さい方」が定まらないことになるが,どちらであっても答えは 1.00 倍となる.
なお,プログラム中で double 型の変数を用意してはいけません.
また,入力される 2 つの整数はいずれも 1 以上であると仮定してプログラムを作ってよいものとする.
【ヒント】
入力された 2 つの整数を a, b としたとき,if 文を使って a の方が b より大きいかどうかを判定してあげます.そして,a の方が大きければ a/b を,そうでなければ b/a を出力すればよいです.
ただし,そのままでは int 型どうしの割り算になって小数点以下が切り捨てられるので,割り算では分子の方を double 型にキャストする必要があります.あわせて,小数点以下の桁数指定も忘れずに.
なお,キャストとデータ型の扱いを理解できていない人にありがちなミスとして,分子と分母の両方にキャストを書く人がいますが,両方ともに書く必要はありません.それはキャストの書きすぎです.
- 【プログラムの実行例】(その1)※赤字は実行時にキーボードから入力する内容
「倍です」の後に改行(\n)を出力するのを忘れないこと
2 つの整数を入力してください:5 14 大きい方は小さい方の 2.80 倍です⏎
- 【プログラムの実行例】(その2)※赤字は実行時にキーボードから入力する内容
2 つの整数を入力してください:14 8 大きい方は小さい方の 1.75 倍です⏎
- 【プログラムの実行例】(その3)※赤字は実行時にキーボードから入力する内容
2 つの整数を入力してください:10 10 大きい方は小さい方の 1.00 倍です⏎
【過去にあったミス(実際に減点となり,やり直しを命じられた例)】
■ 比率を計算する時に double 型へのキャストを忘れている.
(小数点以下が切り捨てられてしまい,実行例1や2の結果が 2.00 倍や 1.00 倍と表示される.)
■ 小数点以下の表示桁数の指定を忘れている.
(無指定のままだと小数点以下第 6 位まで表示される.)
■ 末尾の「倍です」を書き忘れている.
■ インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).
← [ 練習1 (p0301.c) ]
ミスが無いことを確認したら次の問題へ → [ 練習3 (p0303.c) ]