我正在尝试使用递归计算数组中整数元素的平均值。我知道如何使用循环来完成,但是我的作业要求我使用递归来完成。因此,我尝试使用递归来计算元素的总和,然后将总和除以数组的长度来得到平均值。我编写了以下代码,但它给出了错误的结果:
public int findAvg(int a[], int n)
{
int sum,avg;
if(n==1)
{
sum=a[0];
return sum;
}
else
{
sum=a[n-1]+findAvg(a,n-1);
}
avg = sum/n;
return avg;}
public class main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Recursive r = new Recursive ();
int integersArr [] = {1,2,3,4,5};
int max = r.findMax(integersArr,integersArr.length );
int avg = r.findAvg(integersArr, integersArr.length);
System.out.println("Maximum element = "+ max);
System.out.println("Average value of elements = "+ avg);
}
}
控制台输出:
元素的平均值 = 1