不太懂为什么这段代码的结果 ,求分析让我理解一下


int f(int a[],int n)
{if(n>=1) return f(a,n-1)+a[n-1];
else return 0;
}
void main()
{ int aa[5]={1,2,3,4,5},s;
 s=f(aa,5);
 printf("%d",s);
}

就是通过函数迭代的方式去求数组的所有元素和。第一次代入f(aa,5),return的是f(a,4)+a[4]。 然后f(a,4)就是f(a,3)+a[3],不断迭代,直到n为0,最后结果就是a[4]+a[3]+a[2]+a[1]+a[0]

递归实现,数组求和,递推式是f(aa,n)=f(aa,n-1)+ aa[n-1]一个很简单的东西啊