練習 2(提出プログラム名:p0202a.c)
以下の例のように実行できるプログラムを作りなさい.提出ファイル名は p0202a.c としなさい.
このプログラムでは 2 つの整数を読み込み,(それらを x, y として)
① (x の 2乗) < y の時:「◯は△の平方根よりも小さいです」と表示する.
② (x の 2 乗) > y の時:「◯は△の平方根よりも大きいです」と表示する.
③ 上のいずれでもない時:「◯は△の平方根です」と表示する.
ただし,表示の際には◯と△にはいずれも実際に入力された x と y を使用すること(以下の実行例を参照).
なお,x, y はいずれも 1 以上の整数と仮定してプログラムを作ってよい.
【ヒント】
if 文構造としてはいくつか考えられるが,例えば以下のような構造がある:
if ( ①の条件 ){
①の処理
}
else if ( ②の条件 ){
②の処理
}
else{
③の処理
}
- 【プログラムの実行例】(その1)※赤字は実行時にキーボードから入力する内容
以下の実行例では実際に入力された 3 と 14 が出力で使われている(x や y といったアルファベットではない)点に注意せよ
2 つの整数を入力してください:3 14 3 は 14 の平方根よりも小さいです⏎
- 【プログラムの実行例】(その2)※赤字は実行時にキーボードから入力する内容
以下の実行例2では実行例1とは違って「大きいです」と表示される点に注意せよ(コピペで作って同じメッセージを表示させてしまわないこと)
2 つの整数を入力してください:7 36 7 は 36 の平方根よりも大きいです⏎
- 【プログラムの実行例】(その3)※赤字は実行時にキーボードから入力する内容
2 つの整数を入力してください:6 36 6 は 36 の平方根です⏎
【過去にあったミス(実際に減点となり,やり直しを命じられた例)】
■ 上の実行例と出力の結果が違っている(よく確認していない).
(例1)「x は y の平方根…」という表示で x と y がアルファベットのままになっている.
(実際に入力された整数を表示させるのが正解)
(例2)上に示された3種類の実行例を試していない.
■ 【ヒント】として書かれていた構造で作った場合に,
わざわざ if ( x*x == y ) という if 文も書いている.このような if 文を書くのは完全に無駄です.
なぜなら,その上の 2 つの条件がいずれも成立しない場合は x*x と y が等しいのは明らかです.
■ インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).
← [ 練習1 (p0201a.c) ]
ミスが無いことを確認したら次の問題へ → [ 練習3 (p0203a.c) ]