如何编写计算数组元素平均值的递归函数?
以下是我目前掌握的情况:

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时),它将根据所有元素的总和计算实际平均值

07-25 20:31