80纳克萨玛斯入口:请问下面这道题目哪位高手能帮我解释清楚些.主要是递归调用,我真的是不明白.

来源:百度文库 编辑:高校问答 时间:2024/05/02 09:58:24
#include <iostream.h>
int sumall(int a[],int size)
{
if (size==1) return a[0];
return a[0]+=sumall(a+1,size-1);
}
void main()
{
int d[]={1,2,3,4,5};
cout<<sumall(d,sizeof(d)/sizeof(d[0]));

}主要解释为什么返回a[0]还有就是如何做的加法.想的头都大了.谢谢了.

这个是一个数组求和的函数,使用的是递归的算法。

为什么返回a[0],是当数组为一个元素的时候,数组的和就等于元素本身。