C语言中递归函数问题,为什么得不出一个正常的答案呢?
#include <stdio.h>#include <math.h>
long recursion(int n);
void main()
{
int n;
long result;
printf("Please input a integer number:\n");
scanf("%d",&n);
result=recursion(n);
printf("%d!=%ld\n",n,result);
}
long recursion(int n)
{
long temp_result;
if(n<0)
{ printf("Input error!\n");
}
if(n==0 && n==1)
{
temp_result=1;
return 1;
}
else
{
temp_result=return(n*recursion(n-1));
}
return temp_result;
}