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);
	
}

测试用例:
n个整数存放在一个一维数组A中,任选一种程序设计语言,编写一个函数,利用递归的方法,求数组中各整数的平均值_第1张图片
n个整数存放在一个一维数组A中,任选一种程序设计语言,编写一个函数,利用递归的方法,求数组中各整数的平均值_第2张图片

你可能感兴趣的:(数据结构代码汇总,算法,递归,求平均值)