n个整数存放在一个一维数组A中,任选一种程序设计语言,编写一个函数,利用递归的方法,求数组中各整数的平均值
n个整数存放在一个一维数组A中,任选一种程序设计语言,编写一个函数,利用递归的方法,求数组中各整数的平均值
float average(int arr[], int n) {
if (n == 1) {
return arr[0];
}
else {
return (average(arr, n - 1)*(n - 1) + arr[n - 1]) / n;
//前面n-1个数的平均值*(n-1)=前面n-1个数的总和,
//前面n-1个数的总和+当前数,最后除n则为平均值
}
}
int main()
{
int arr[20] = { 0 };//默认最大输入长度不超过20
int n = 0;
printf("请输入数组长度n:");
scanf("%d", &n);
int i = 0;
printf("\n请输入数组数据:");
for (i = 0;i < n;i++)
{
scanf("%d", &arr[i]);
}
printf("\n数组平均值为:");
float ave = average(arr, n);
printf("%f", ave);
}
测试用例: