練習 5(提出プログラム名:p0805.c)※必須ではない
この練習問題は必須ではない(提出しなくてもよい)が適切に解けていれば加点の対象とする.
サンプルプログラム 2 (sample2.c) を p0805.c という別の名前のファイルにコピーしなさい.そして,p0605.c の中の関数 power の内容を編集して y < 0 の場合にも対応できるようプログラムを改良しなさい.ただし,次の 3 つの条件をすべて満足しなさい:
1)power の中で if 文は 1 回しか使ってはいけません.
2)power の中で使ってよい変数は int 型だけとする(double 型へのキャストはOK).
3)main の内容を書き換えてはいけません.
【改良後の power の動作内容】
● y < 0 の場合:「x の y 乗」を実数として出力する
(桁数指定は不要;第2回で学んだように,デフォルトでは小数点以下が 6 桁になる).
例えば「5 の -2 乗」は 1/25 なので 0.040000 が答えとなる.
● そうでない場合:sample2.c と同じ動作とする.
【注意】
べき乗を求めるのに C 言語には pow という標準ライブラリ関数があるが,これを使ってはいけません.
【ヒント】(5/29, 15:30 追記)
例えば「5 の -2 乗」を出力させたい場合,いったん「5 の 2 乗」を求めます.
そして,printf で出力させるときにその逆数を double 型へキャストして出力させるとよいです.
- 【プログラムの実行例】(その1)※赤字は実行時にキーボードから入力する内容
2 個の整数を入力してください:⏎ 2 4 2 の 4 乗は 16 です⏎
- 【プログラムの実行例】(その2)※赤字は実行時にキーボードから入力する内容
-2 乗と出力すべきところが(マイナスのない) 2 乗になってしまっていないか注意せよ
あわせて,末尾の改行(\n)の入れ忘れにも注意せよ
2 個の整数を入力してください:⏎ 5 -2 5 の -2 乗は 0.040000 です⏎
- 【プログラムの実行例】(その3)※赤字は実行時にキーボードから入力する内容
2 個の整数を入力してください:⏎ 5 0 5 の 0 乗は 1 です⏎
【過去にあったミス(実際に減点となり,やり直しを命じられた例)】
■ 上に示した3通りの実行例と出力結果が違っている.
特に,y >= 0 の場合も実数として出力していたり,割り算での double 型へのキャストを忘れている.
■ インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).
第8回(Cプログラミング;3 限目の方)の練習問題は以上の5問です.
p0801.c ~ p0805.c を Moodle から提出してください.※ただし,p0805.c は必須ではないです.
くれぐれも各問題で記載されている注意事項や「過去にあったミス」を見落とさないようにしてください.
なお,コンパイルエラーや無限ループになるプログラムを 1 個でも提出した場合は総合評価を 0 点とするので十分に注意すること.
なお,提出後に間違いに気付いた場合,〆切前であれば差し替え(上書き)は可能です.