当前位置:首页 > 问答大全 > 关于c语言的一道题,求c高手帮忙解答~谢谢啦

关于c语言的一道题,求c高手帮忙解答~谢谢啦

被浏览: 0次 2023年06月16日 06:44
热门回答(3个)
游客1

这个程序实际是在计算斐拆拿波那契数列:
1,1,2,3,宽指5,8,13,21,……
算法:第1第2两项是1,以后每一项是前两项之和。
fun(int n, int* s)就是计算斐波那契数列第n项的值保存在地址为s的变量中。
所以fun(6,&x)是计算第6项的值(也就是8)保存在x中。
而fun(n-1,&f1)是计算第n-1项的值保存在f1中,fun(n-2,&f2)是计算第n-2项的值旅巧搭保存在f2中。

游客2

8
这是递归调用函数!
函数返回值通过指针s返回!
6开始,函数返回好搜旁值为
f(6,*)=f(5,*)+f(4,*)
f(5,*)=f(4,*)+f(3,*)
f(4,*)=f(3,*)+f(2,*)
f(3,*)=f(2,*)+f(1,*)
f(2,*)=1;这时候返回,不再继续
f(1,*)=1;这时候返回,不再继续

f(6,*)=5*f(2,*)+3*f(1,*)=5+3=8

错误之处://应为||
判断了==1,==2,如果刚开漏搭始n是0或负友橡值那么函数永远不会返回类似于死循环!

游客3

您好,
看C程序。首团搜先看主函数,我们一步步来开:
1,定义整形变量x,,以x的地址为参数。调塌携历用函数fun ,我们就带着x来看fun
2,再fun函数内 fun(int n,int *s),,,当我们调用的时候,这个时候n=6,s是x的地址。
3,运行fun函隐禅数,首先这个if不执行。执行else,即fun(5,&f1)...
就这样一步步运行。。谢谢!