練習 2(提出プログラム名:p0802a.c)
※講義資料(その1)で説明している内容です
まず,このプログラム(p0802a.c)をダウンロードしなさい.
このプログラムは 2 つの整数 x と y を読み込み,関数 power を使って「x の y 乗」を計算して表示するという内容になっている.ただし,y は 0 以上の場合しか対応できていない.
そこで,関数 power の内容を編集して y < 0 の場合にも対応できるようプログラムを改良しなさい.ただし,power の中で if 文は 1 回しか使ってはいけません.なお,main の内容を書き換えてもいけません.
【改良後の power の動作内容】
● y < 0 の場合:「x の y 乗」を実数(double 型)として出力する(桁数指定は不要).
例えば「5 の -2 乗」は 1/25 なので 0.04 が答えとなる.
● そうでない場合:(ダウンロードした元のプログラムと同じ動作).
【注意】
べき乗を求めるのに C 言語には pow という標準ライブラリ関数があるが,これを使ってはいけません.
- 【プログラムの実行例】(その1)※赤字は実行時にキーボードから入力する内容
2 個の整数を入力してください:⏎ 2 4 2 の 4 乗は 16 です⏎
- 【プログラムの実行例】(その2)※赤字は実行時にキーボードから入力する内容
2 個の整数を入力してください:⏎ 5 -2 5 の -2 乗は 0.040000 です⏎
※「-2 乗」が「2 乗」になってしまっていないか注意せよ.末尾の改行(\n)も忘れないこと.
- 【プログラムの実行例】(その3)※赤字は実行時にキーボードから入力する内容
2 個の整数を入力してください:⏎ 5 0 5 の 0 乗は 1 です⏎
【過去にあったミス(実際に減点となり,やり直しを命じられた例)】
■ 上に示した3通りの実行例と出力結果が違っている.
特に,y >= 0 の場合も実数として出力していたり,割り算での double 型へのキャストを忘れている.
■ インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).
← [ 練習1 (p0801a.c) ]
ミスが無いことを確認したら次の問題へ → [ 練習3 (p0803a.c) ]