int f(int a[ ],int n){ if(n>1) return a[0]+f(&a[1],n-1);
答案:2 悬赏:60
解决时间 2021-01-12 08:57
- 提问者网友:心如荒岛囚我终老
- 2021-01-11 15:02
int f(int a[ ],int n){ if(n>1) return a[0]+f(&a[1],n-1);
最佳答案
- 二级知识专家网友:胯下狙击手
- 2021-01-11 15:08
aa:(1,2,3)
s=f(&1,3);
在计算时:3>1 返回 1+f(&2,2)
f(&2, 2):2还是大于1,就返回2+f(&3,1);
f(&3,1):1不大于1了,所以就返回a[0],也就是3.
f(&3,1)=3,那么f(&2,2)=2+3=5,f(&1, 3)=1+f(&2,2)=1+5=6
上面我写的&1,&2,&3语法是不对的,只是让你参考用,&1代表指针指向数组aa里的数字1。
看来你还没学过递归吧。
s=f(&1,3);
在计算时:3>1 返回 1+f(&2,2)
f(&2, 2):2还是大于1,就返回2+f(&3,1);
f(&3,1):1不大于1了,所以就返回a[0],也就是3.
f(&3,1)=3,那么f(&2,2)=2+3=5,f(&1, 3)=1+f(&2,2)=1+5=6
上面我写的&1,&2,&3语法是不对的,只是让你参考用,&1代表指针指向数组aa里的数字1。
看来你还没学过递归吧。
全部回答
- 1楼网友:独行浪子会拥风
- 2021-01-11 16:04
数组作为参数是按址传递,因此f(&a[1],n-1)就是把数组第二个元素的地址传递给函数形参,则形参数组的长度一次递减直至剩一个元素
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯