課題 [2] 演算とデータ型(5/9)

問 5(提出プログラム名:ex0205.c)

球体の半径 r (単位は cm で整数とする)を読み込み,その球体の体積(単位は cm3こちらは実数)を小数点以下第 2 位まで出力するプログラムを作成しなさい.
(変数 r は int 型で用意しなさい.double 型で用意してはいけません.)
ただし,printf での出力では小数点以下の桁数を指定するだけとし,全体の桁数は指定しないこと
提出するソースファイル(ソースプログラム)のファイル名は ex0205.c としなさい.

なお,球体の体積は次式で求まるが,このプログラムでは π = 3.14 として計算させなさい.
           

【ヒント】
上の公式をそのまま「(4/3)*3.14*….(以下省略)…. 」と書いて計算させると,「4/3」整数(int 型)どうしの割り算なので 1 と計算されてしまいます.この場合,割り算の分子(=4)を double 型へキャストするとよいです.
なお,別解として/3」を後回しにして先に「4*3.14」を計算させるようにすれば4*3.14 を計算した時点で値は double 型扱いになるのでキャストは不要になります.

  • 【プログラムの実行結果】(その1)赤字は実行時にキーボードから入力する内容
球体の半径を整数で入力してください(cm単位):10
体積は 4186.67 立方cm です
  • 【プログラムの実行結果】(その2)赤字は実行時にキーボードから入力する内容
球体の半径を整数で入力してください(cm単位):2
体積は 33.49 立方cm です

【過去にあったミス(実際に減点となり,やり直しを命じられた例)】
実行の画面出力が上の例と違うきちんと確認していない).
  (例1)double 型へのキャストを適切に使えておらず,上の結果が違う値になっている.
  (例2)小数点以下の桁数指定を忘れていて上の結果が 4186.666667 や 33.493333 になっている.
■ 体積の出力の末尾に改行(\n)を書き忘れている
インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).


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