我已经编写了一个斐波那契数列的代码,该代码返回了完整序列的和,可以将本地“ static 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;
}
您的问题是只返回if n == 0
,但是您的main函数实际上使用调用它n > 0
。使您的函数始终返回total + 1
,不仅当n为零时(换句话说,就是删除else
),它应该可以工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句