递归求n个数的平平均值(c语言)解决方案
递归求n个数的平平均值(c语言)
#include<stdio.h>
float Avg(int a[],int n);
float Avg(int a[],int n)
{
if(n==1) return a[0];
else return float(Avg(a,n-1)*(n-1)+a[n-1])/n;
}
void main()
{
int array[10];
for(int i=0;i<10;i++)
{
scanf("%d\n",array[i]);
}
//Avg(array,10);
printf("这10个数的平均值是:%f\n",Avg(array,10));
}
这个递归函数问题出在哪呀?
------解决方案--------------------
#include<stdio.h>
float Avg(int a[],int n);
float Avg(int a[],int n)
{
if(n==1) return a[0];
else return float(Avg(a,n-1)*(n-1)+a[n-1])/n;
}
void main()
{
int array[10];
for(int i=0;i<10;i++)
{
scanf("%d\n",array[i]);
}
//Avg(array,10);
printf("这10个数的平均值是:%f\n",Avg(array,10));
}
这个递归函数问题出在哪呀?
------解决方案--------------------
- C/C++ code
#include<stdio.h> float Avg(int a[],int n); float Avg(int a[],int n) { if(n==0) return a[0]; else return Avg(a,n-1)+a[n]; } void main() { int array[10]; for(int i=0;i<10;i++) { scanf("%d",&array[i]); //要这样输入吧 } //Avg(array,10); printf("这10个数的平均值是:%f\n",Avg(array,9)/10); }