【发布时间】:2015-03-14 04:23:37
【问题描述】:
我已经为返回完整系列之和的斐波那契数列编写了代码,是否可以将本地“静态 int”变量返回到代码尝试打印总和的主函数。
下面是我的代码
#include<stdio.h>
int fiborecur(int n)
{
static int first=0,second=1,sum=0,total=0;
if( n>0 )
{
sum = first + second;
total = total + sum;
printf(" %d", sum);
first = second;
second = sum;
fiborecur(n-1);
}
else
{
return total+1;
}
}
int main()
{
int n;
printf("Enter the series length you want = ");
scanf("%d", &n);
printf("0 1");
printf("\nSum of the series after return = %d\n", fiborecur(n-2));
return 0;
}
【问题讨论】:
-
你没有返回
static int,你正在返回它的值,所以是的。但这看起来它会在第二次调用时失败,因为没有任何东西会重置静态 -
你可以在没有递归函数的情况下返回它会正常工作。你需要递归函数吗?