問 2(提出プログラム名:ex0802.c)
このプログラム(ex0802.c)をダウンロードし,その中の関数 print_fact を完成させなさい.
関数 print_fact は,引数で与えられた整数 n について,その階乗(n!)を実行例のように出力するものとする.
ただし,関数 main の内容は一切書き換えないこと.
また,n は 0 以上の整数であると仮定してプログラムを作ってよい.
【ヒント】
ここでは,求める階乗の値を仮に変数 f で表すことにします.
この f の値を最初は 1 にしておき,後は for 文(または while 文)を使って
k = 1, 2, ..., n と変化させながら f *= k; を実行すればよいことになります.
※ n = 0 の場合は,上の for 文(または while 文)の繰り返しが 1 回も行われないため,
自動的に f の初期値である 1 が答えとなりますので 0! の場合にも対応できています.
- 【プログラムの実行結果】(その1)※赤字は実行時にキーボードから入力する内容
0 以上の整数を入力してください:5 5! = 120⏎
※階乗を出力させた末尾に改行(\n)を忘れないこと!
- 【プログラムの実行結果】(その2)※赤字は実行時にキーボードから入力する内容
0 以上の整数を入力してください:1 1! = 1⏎
- 【プログラムの実行結果】(その3)※赤字は実行時にキーボードから入力する内容
0 以上の整数を入力してください:0 0! = 1⏎
【過去にあったミス(実際に減点となり,やり直しを命じられた例)】
■ 実行の画面出力が上の例と違う(きちんと確認していない).
(例1)出力される階乗の値が違っている.
(例2)「n! = ○○」とアルファベット表記になってしまっている.
■ 注意書きを見落としていて main 関数の中身を書き換えてしまっている.
■ インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).
← [ 問 1 (ex0801.c) ]
ミスが無いことを確認したら次の問題へ → [ 問3 (ex0803.c) ]