如果数组长度为1,则可以直接返回平均值结果;否则将数组A视为两部分,即A[n-1]和A[0,…,n-2],递归地处理A[0,…,n-2]中n-1个数的平均值avg,通过(avg*(n-1)+A[n-1])/n即可求得数组A中所有数的平均值。
float arrayavg(float A[],int n){
if(n==0)
return A[n];
else
return (A[n]+n*arrayavg(A,n-1))/(n+1);
}
如果数组长度为1,则可以直接返回平均值结果;否则将数组A视为两部分,即A[n-1]和A[0,…,n-2],递归地处理A[0,…,n-2]中n-1个数的平均值avg,通过(avg*(n-1)+A[n-1])/n即可求得数组A中所有数的平均值。
float arrayavg(float A[],int n){
if(n==0)
return A[n];
else
return (A[n]+n*arrayavg(A,n-1))/(n+1);
}