みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

キーボードから与えられた整数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;
}

よろしくお願いします。

投稿日時 - 2009-11-13 07:23:54

QNo.5443909

すぐに回答ほしいです

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

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);
}
}

投稿日時 - 2009-11-14 11:00:21

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

メイン関数おかしくないですか?

> キーボードから与えられた整数iに対して
in変数に代入してますよ?

これだと
1の階乗、2の階乗、・・・、inの階乗

の全てを出力してますよ。


fact()関数はforでループして、その回数分掛け算を繰り返せばできます。

とりあえずどこがわからないのか提示しましょう。

投稿日時 - 2009-11-13 14:11:58

ANo.1

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

投稿日時 - 2009-11-13 07:27:21

あなたにオススメの質問