分别用递归、for、while实现给定数组求和

 

#include <stdio.h>

int main()
{
    int addRecursion(int *p,int i,int n);
    int addFor(int *p,int n);
    int addWhile(int *p,int n);
    int a[10];
    int i;
    
    for(i=0;i<10;i++)
        a[i]=i+1;
    
    printf("addRecursion: %d \n",addRecursion(a,0,10));
    printf("addFor: %d \n",addFor(a,10));
    printf("addWhile: %d \n",addWhile(a,10));
    
    return 0;
}
//递归方法 
int addRecursion(int *p,int i,int n)
{
    int sum;    
    if(i<(n-1))
    {
     sum=p[i]+addRecursion(p,i+1,n);    
    }    
    else
    sum=p[i];
    return sum;
}
//for循环 
int addFor(int *p,int n)
{
    int sum=0;
    int i;    
    for(i=0;i<n;i++)
    {
        sum+=p[i];
    }
    return sum;
}
//while循环 
int addWhile(int *p,int n)
{
    int sum=0;
    int i=0;    
    while(i<n)
    {
      sum+=p[i];
      i++;
    }
    return sum;
}

 

你可能感兴趣的:(分别用递归、for、while实现给定数组求和)