• ベストアンサー

次のプログラムが作れません…

キーボードから与えられた整数iに対して、iの階乗(i!)を求める関数"fact"を作成するというものなのですが… メイン関数は次のように与えられています。 #include<stdio.h> int fact(int); int main(void){ int in, i; printf("Input a number:"); scanf("%d",&in); for (i=1; i<=in; i++){ printf(" %d %d\n",i , fact(i) ); } return 0; } よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • salsberry
  • ベストアンサー率69% (495/711)
回答No.3

int fact(int n) { if(n<0) { printf("fact(%d): error\n", n); return n; } else if(n==0) { return 1; } else { return n*fact(n-1); } }

その他の回答 (2)

  • yone_sk
  • ベストアンサー率34% (58/167)
回答No.2

メイン関数おかしくないですか? > キーボードから与えられた整数iに対して in変数に代入してますよ? これだと 1の階乗、2の階乗、・・・、inの階乗 の全てを出力してますよ。 fact()関数はforでループして、その回数分掛け算を繰り返せばできます。 とりあえずどこがわからないのか提示しましょう。

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.1

趣味ですか?何かの課題ですか?課題なら自分で解かないと意味ありませんね。

関連するQ&A