编写一个递归函数,求传入的一个数组的所有元素之和。函数参数原型为:int sum(int *a, int n);

如题所述

第1个回答  2010-05-24
#include <stdio.h>
int sum(int *a, int n)
{
if (n==0)
{
return 0;
}
return a[n-1]+sum(a,n-1);
}
int main()
{
int a[5]={1,2,3,4,5};
int num=sum(a,5);
printf("sum=%d\n",num);
return 0;
}
程序如上。本回答被提问者采纳
第2个回答  2010-05-24
static int _sum = 0;

int
sum_(int *a1, int n1, int len1)
{

if(n1 < len1){
_sum += sum_(a1,n1,len1)+sum_(a1,n+11,len1);
} esle{
return _sum;
}
}

int
sum(int *a, int n)
{

int len=0;
int *tmp=a;
while(*tmp)
{
++len;
++tmp;
}

sum_(a,n,len)
}
第3个回答  2010-05-25
int sum(int *a, int n)
{
int s=0;
int i;
for (i=0;i<n;i++)
s=s+*(a+i);
return s;
}