通过递归计算数组a[100]的前n个数之和(C语言编写)?求大神给答案

如题所述

#include "stdio.h"
#include<stdlib.h>
#include<math.h>
void Get(int a[])
{
  int i;
  srand(NULL);
  for(i=0;i<100;i++)
    a[i]=rand()%100+1;
}
void show(int a[])
{
  int i;
  printf("这一百个数字是:\n");
  for(i=0;i<100;i++)
    {
      printf("%3d ",a[i]);
      if((i+1)%10==0)
        printf("\n");
    }
}
long  sum(int a[],int len)
{
  if(len>0)
    return sum(a,len-1)+a[len];
  else
    return a[0];
}
int main()
{
  int a[100];
  Get(a);
  show(a);
  long all=0;
  all=sum(a,99);
  printf("\n%d\n",all);
  return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-01
#include<stdio.h>
int sum(int*a,int n)
{
 if(n-1==0)
 {
  return a[0];
 }
 else
 {
  return a[n-1]+sum(a,n-1);
 }
}
int main()
{
 int a[100]={1,2,3,4,5};
 printf("%d",sum(a,5));
}

第2个回答  2014-11-01
现给出递归函数:
int sum(int n)
{
if(n==1) return a[1];
else return a[n]+sum(n-1);
}
第3个回答  2014-11-01
int add(int *a,int index)
{
if (index == 0)
{
return *a;

}
else {
return *(a+index) + add(a,index-1);

}
}

void main()
{
int a[100];

int n = 80;

int res = add(a,n);

}