再帰的関数によりnの階乗を求めるプログラム
Posted: 2009年1月25日(日) 04:52
#include<stdio.h>
int factorial(int);
int main(void){
int n,f,
scanf("%d",&n);
f=factorial(n);
printf("factorial=%d/n",f);
return(0);
}
int factorial(int n){
int f,
if(n<=1)
return(1)
else return n*factorial(n-1);
return(f);
}
のfactorialの関数の部分で、if文のelseの場合、n*factorial(n-1);
の結果をmain関数のfに返すのはわかるのですが、先ほどのn*factorial(n-1);
の下のreturn(f);について、fの値を返すというのはどういうことなのでしょうか?
factorial関数ではint fで変数fを宣言しているにもかかわらず使われていないように
見えるのですがこのプログラムは間違っていますか?
int factorial(int);
int main(void){
int n,f,
scanf("%d",&n);
f=factorial(n);
printf("factorial=%d/n",f);
return(0);
}
int factorial(int n){
int f,
if(n<=1)
return(1)
else return n*factorial(n-1);
return(f);
}
のfactorialの関数の部分で、if文のelseの場合、n*factorial(n-1);
の結果をmain関数のfに返すのはわかるのですが、先ほどのn*factorial(n-1);
の下のreturn(f);について、fの値を返すというのはどういうことなのでしょうか?
factorial関数ではint fで変数fを宣言しているにもかかわらず使われていないように
見えるのですがこのプログラムは間違っていますか?