读下面程序,回答问题
#include"stdio.h"
int fun(int *a,int n)
{
if(n>1) return *a+fun(a+1,n-1);
else
return *a;
}
void main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10},s;
s=fun(a+3,3);
printf("%d\n",s);
}
数fun与下面非递归程序等价的是( )
int fun(int *a,int n)
{
int i,s=0;
for(i=0;i<n;i++)
s=s+a[i];
return s;
}
int fun(int *a,int n)
{
int i,s=0;
for(i=0;i<n;i++)
s=s+*a;
return s;
}
int fun(int *a,int n)
{
int i,s=0;
for(i=0;i<n;i++)
s=a[i];
return s;
}
int fun(int *a,int n)
{
int i,s=0;
for(i=0;i<n;i++)
s=s+a[n-i];
return s;
}