用递归法实现求数组的和??

来源:百度知道 编辑:UC知道 时间:2024/09/22 07:08:26
int sum (int a[] , int n)
{ if (n>0) return________;
else return________;
}

你这个递归设置的基本条件不合适,因为据我理解n应该是表示a数组的元素个数,那么这个n值不可能小于1,更不可能是负数。而照二楼的代码理解,元素个数为0的情况下却可以返回a[0]!a数组一个元素也没有还哪来的a[0]????应该像下面这样:
int sum(int a[],int n)
{
if (n == 1)
return a[n - 1];
else
return sum(a,n - 1) + a[n - 1];
}

int sum(int a[],int n) //如果数组是a[n]的话 ,你没说明只能猜测
{
if(n>0) return a[--n]+sum(a,n);
else return 0;
}

第一条横线填: a[n - 1] + sum(a, n - 1)
第二条横线填: 0

int sum (int a[] , int n)
{ if (n>0) return sum(a,n-1);
else return a[n];
}

if(n>0) return a[n]+sum(a,n-1);
else return a[0];