递归啊递归 递过去不给我回来了 我输入一个5为什么没有打印出返回值
#include <stdio.h>double recursion (int n); //声明递归函数
int main()
{
int n;
double result;
printf ("Please enter an integer:\n");
scanf ("%d", &n);
result = recursion(n);//存放结果
printf ("%lf\n",result);//打印最终结果
}
double recursion (int n)//定义递归函数
{
double temp_result;
if ( n < 0 )
{
printf("Input error!\n");
}
else if (n==0 || n==1)
{
temp_result = 1;
}
else
{
temp_result = ( recursion(n) - 1 ) * n;
}
return temp_result;
}
是recursion(n-1)吧 qingchen 发表于 2013-11-20 13:32 static/image/common/back.gif
是recursion(n-1)吧
recursion(n) -1
如果写成这样.....后果是啥样的 我也没去打代码! qingchen 发表于 2013-11-20 17:16 static/image/common/back.gif
我也没去打代码!
谢谢哈{:7_168:} 没事我也是才学习不久 qingchen 发表于 2013-11-20 18:33 static/image/common/back.gif
没事我也是才学习不久
对啦 为什么 temp_result= 1就不调用函数了直接打出结果了。。 qingchen 发表于 2013-11-20 18:33 static/image/common/back.gif
没事我也是才学习不久
是不是最后那个 else 反复着调用这个函数而当减到了1的时候就不在执行调用就跳出了。。 ゛落君灬殇丶 发表于 2013-11-20 18:39 static/image/common/back.gif
是不是最后那个 else 反复着调用这个函数而当减到了1的时候就不在执行调用就跳出了。。
嗯当到1时都不会调用递归那函数了 temp_result = ( recursion(n) - 1 ) * n;
这...... 你是想写temp_result = ( recursion(n - 1)) * n;吧
要不然N的值一直没变当然退不出来了阿
页:
[1]