問題CPP00116の解答例と解説 C++ Lv.1
整数の割り算(15分)
<解答例 1>
F11キーでフルスクリーンモード、Escキーで元に戻ります。
<解答例 2>
F11キーでフルスクリーンモード、Escキーで元に戻ります。
答えは、3 / 2 は、1.5ではなく、1になっていたよね。これは、int型の値同士の計算の結果は、int型の値になるというルールがあるからなんだ。
そして、小数点以下の端数は切りしてられてしまうから 3 / 2 は 1.5 にはならず、0.5 が切り捨てられて 1 になるよ。
今回作った関数の戻り値はdouble型なんだけど、いったんint型になったあとの値がdouble型になって返されるんだ。解答例2 では、3行目で、右辺の計算結果が 1 になって、それが変数 c に代入されて 1.0 になるよ。
1.5を返したい場合は、以下のようにプログラムすると良いよ。試してみよう。
F11キーでフルスクリーンモード、Escキーで元に戻ります。
こういうことを型変換またはキャストというよ。詳しいことはweb で "C++ 型変換"、"C++ キャスト" で検索してみよう。
初めての方へ:このページは、このサイトで用意しているプログラミング問題の解答と解説のページです。このサイトではブラウザ上からプログラミングができます。会員登録(無料)して、プログラミングしてみませんか?
新規登録
新規登録