以下はコードですが、私が間違っている箇所を正確にピンポイントしてください。 私は宣言して、関数を定義しました、何が間違っているのか分かりません。なぜこの階乗の再帰的プログラムは機能しないのですか?
#include<stdio.h>
int factorial(int b); /* Declaration */
int main()
{
int num;
printf("Enter number: ");
scanf("%d", &num);
printf("%d",factorial(num));
return 0;
}
int factorial(int b) /*Function definition*/
{
return b*factorial(b-1);
}
はタグ付きではないスパムをしてくださいますか。これはC言語ではありません# –
どのようなデバッグ試行をしましたか?ヒント:「階乗(0)」の価値はどうあるべきですか? – lurker
関連して、根本的な問題は、このサイト上の*多くの*再帰的な質問の直接の複製です(この**を含む**)(https://stackoverflow.com/questions/15058449/recursive-factorial-program-in- c-hangs-when-executing)。再帰チェーンを停止するための基本ケースはありません。無関係で、あなたがこれを修正した後でも、あなたの入力要件を満たすために完全に正当な '-1'(または任意の負の値)を入力した人に何が起こるかを検討することをお勧めします。何か邪悪な、この方法が来る。 – WhozCraig