課題 [8] 関数①(2/9)

問 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 上でインデントを自動で揃える作業をやっていない).


ミスが無いことを確認したら次の問題へ → [ 問3 (ex0803.c) ]