递归函数c语言 递归函数c语言求x的n次方


递归函数c语言 递归函数c语言求x的n次方

文章插图
大家好,小问来为大家解答以上问题 。递归函数c语言求x的n次方 , 递归函数c语言这个很多人还不知道,现在让我们一起来看看吧!
1、这位朋友,你的程序本身就是错误的 。
2、 第一,sub(&s,8,1)这里,没有s这个变量 , 何来地址,应该是sub(&x,8,1) 第二,sub(int *a,int n,int k,)这里多了一个逗号 , 参数列表不支持这种格式 。
3、 第三,printf("%d")这里没有输出项 , 应该是printf("%d",x) 应该是这样的 main() { int x=0; sub(&x,8,1); printf("%d",x); } sub(int *a,int n,int k) { if(k<=n) sub(a,n/2,2*k); *a+=k; } 然后这个程序的目的是计算到k>n为止 , 中间k的所有取值累加在一起 。
4、 第一次执行的时候n=8,k=1,不符合条件 第二次执行的时候n=n/2=4,k=2*k=2,不符合条件 第三次执行的时候n=n/2/2=2,k=2*2*k=4,符合条件,a=a+k=0+4=4,返回上次调用sub()的地方,a=a+k=4+2(这里的2是第二次执行的时候k的取值),一次类推,最后a的取值是a=4+2+1=7 。
5、 因为传入sub()的a是指针,指向的是x的地址 , 所以最后a的改变反映在x上 。
【递归函数c语言 递归函数c语言求x的n次方】以上就是【递归函数c语言求x的n次方,递归函数c语言】相关内容 。

    推荐阅读