作者在 2007-04-05 16:33:00 发布以下内容
以下是一个用递归法调用求一整型数组的平均值,我没有看懂 return ((float)(n*f(n-1)+a[n])/(n+1));
错在哪儿? 把它放在Turboc2.0中验证,结果错了:f(10)=944.182 。书上说正确的答案是f(10)=4 。请高手指教?!
#include<stdio.h>
int a[]={0,1,2,3,4,5,6,7,8,9};
float f(int n)
{
if(n==1)
return a[0];
else
return ((float)(n*f(n-1)+a[n])/(n+1));
}
main()
{
int n=10;
printf("f(%d)=%g\n",n,f(n));
getch();
}