C 关于递归函数

C 关于递归函数,c,function,C,Function,我需要打印数组中数字的平均值。我对一些函数使用了相同的函数,我在另一个时间计算一些函数,对n使用mod 但是出了问题,我该怎么办 int aver(int a[], int n) { if (n == 0){ return 0; } else{ return ((a[n-1] / n + aver(a, n - 1)) / n); } } 问题是整数除法会截断。例如,如果n为100且a[n-1]为25,则除法a[n-1]/n的结果

我需要打印数组中数字的平均值。我对一些函数使用了相同的函数,我在另一个时间计算一些函数,对n使用mod

但是出了问题,我该怎么办

int aver(int a[], int n)
{
    if (n == 0){
        return 0;
    }
    else{
        return ((a[n-1] / n + aver(a, n - 1)) / n);
    }
}

问题是整数除法会截断。例如,如果
n
为100且
a[n-1]
为25,则除法
a[n-1]/n
的结果为0。所以你需要把它们加起来,然后在最后进行除法。或者所有的计算都使用浮点。好的,谢谢。你能告诉我怎么把它们加起来吗?如果你去掉这两个部分,
aver
函数就变成了一个
sum
函数。然后可以将
aver
函数实现为
{returnsum(a,n)/n;}