練習 [3] プログラムの流れの分岐(2/5)

練習 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 上でインデントを自動で揃える作業をやっていない).


ミスが無いことを確認したら次の問題へ → [ 練習3 (p0303.c) ]