int f(int a[],int n)

2025-02-21 22:20:11
推荐回答(2个)
回答1:

int f(int a[],int n)
{
if(n>=1)return f(a,n-1)+a[n-1];
else return 0;
}
递归函数
f(aa,5) 传入数组的首地址 aa 和 成员数量
执行过程 f(aa,4)+aa[4]
f(aa,3)+aa[3]+aa[4]
f(aa,2)+aa[2]+aa[3]+aa[4]
f(aa,1)+aa[1]+aa[2]+aa[3]+aa[4]
f(aa,0)+aa[0]+aa[1]+aa[2]+aa[3]+aa[4]
0+aa[0]+aa[1]+aa[2]+aa[3]+aa[4]=15 依次展开

回答2:

其实他就是5+4+3+2+1=15。他是反复调用int f()函数。执行递归函数
f(aa,n) 传入数组的首地址 aa 和 成员数量
执行过程 f(aa,4)+aa[4]
f(aa,3)+aa[3]+aa[4]
f(aa,2)+aa[2]+aa[3]+aa[4]
f(aa,1)+aa[1]+aa[2]+aa[3]+aa[4]
f(aa,0)+aa[0]+aa[1]+aa[2]+aa[3]+aa[4]
0+aa[0]+aa[1]+aa[2]+aa[3]+aa[4]=15