如何编写计算数组元素平均值的递归函数?
以下是我目前掌握的情况:
int media(int numeros[], int i, int n) {
if (i == n-1) return numeros[i]/n;
return numeros[i]/n + media(numeros, i + 1, n);
}
但它不起作用,我想是因为线路:
if (i == n-1) return numeros[i]/n;
最佳答案
这个怎么样:
double media(int numeros[], int i, int n) {
if (i == n - 1) {
return numeros[i];
}
if (i == 0)
return ((numeros[i] + media(numeros, i + 1, n)) / n);
else
return (numeros[i] + media(numeros, i + 1, n));
}
你所做的是除以每个调用的元素数,这样会得到不正确的平均值。上面的代码执行了您所做的操作,但是在返回结果时(当
i==0
时),它将根据所有元素的总和计算实际平均值