練習 3(提出プログラム名:p0303.c)
サンプルプログラム 3 (sample3.c) を p0303.c という別の名前のファイルにコピーしなさい.そして,p0303.c を編集して以下の例のように実行できるプログラムを作りなさい.
ただし,このプログラムで if は 2 回までしか使ってはいけません.
このプログラムでは 2 つの整数を読み込み(それらを x, y として),
(1) 「x の 2乗 < y」 の時:「◯は△の平方根よりも小さいです」と表示する.
(2) 「そうでない」時:
(2-1) 「x の 2 乗 > y」 の時:「◯は△の平方根よりも大きいです」と表示する.
(2-2) 「そうでない」時(つまり,上のいずれでもない時):「◯は△の平方根です」と表示する.
ただし,表示の際には◯と△にはいずれも実際に入力された x と y を使用すること(以下の実行例を参照).
なお,x, y はいずれも 1 以上の整数と仮定してプログラムを作ってよい.
【ヒント】
上の(1), (2), (2-1), (2-2) という判定は,以下の構造で実現できます.
if ( x*x < y )
{
(1)の場合の処理
}
else
{
if ( x*x > y )
{
(2-1)の場合の処理
}
else
{
(2-2)の場合の処理
}
}
- 【プログラムの実行例】(その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種類の実行例を試していない.
■ 処理(2-2) の前にわざわざ if ( x*x == y ) という if 文を書いている.
このような if 文を書くのは完全に無駄です.なぜなら,(2-2) が実行されるということは,その上の 2 つの if 文の条件がいずれも成立しなかった場合しかありえないからです.
■ インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).
← [ 練習2 (p0302.c) ]
ミスが無いことを確認したら次の問題へ → [ 練習4 (p0304.c) ]