再帰を使用して階乗を計算しようとしていますが、プログラムが間違った値を返しています。再帰機能を理解できません。再帰の仕組みを理解するのを手伝ってください。間違った値を返す再帰を使用するファクタリックなプログラム
#include <stdio.h>
#include <math.h>
int main()
{
//code
int T,N,sol;
scanf("%d\n",&T);
while(T--) {
scanf("%d\n",&N);
sol=fact(N);
printf("%d\n",sol);
}
return 0;
}
int fact(int n)
{
int value;
while(n>0) {
value=n*fact(n-1);
n=n-1;
}
return value;
}
機能を正しく設定していないため、 – Li357
を使用する前に 'value'を初期化しています。プラス機能も間違っています。 @AndrewL。 – Haris
あなたは私に関数のエラーがどこにあるのか教えてください。 –