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

int sum (int a[] , int n) { if (n>0) return________; else return________; }
2025-04-24 10:32:11
推荐回答(2个)
回答1:

你这个递归设置的基本条件不合适,因为据我理解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];
}

回答2:

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