请教为啥错啊?

请教为啥错啊?


public class TestArray4 {

    //求数组元素的平均值

double c=0;

public double v(double[]a){

   for(int f=0;f<=(int)a.length-1;f++){

       c=(c+a[f])/(f+1);

           }

   return c;

}

public static void main(String[] args) {

//定义对象

TestArray4 a=new TestArray4();

//创建float类型的数组并初始化

double[]x={78.5,98.5,65.5,32.5};

//调用方法求平均值并打印输出

double h=a.v(x);

System.out.println(h);

}

}


正在回答

登陆购买课程后可参与讨论,去登陆

3回答
public double v(double[] a) {
for (int f = 0; f <= (int) a.length - 1; f++) {
c = (c + a[f]) / (f + 1);
}
return c;
}

方法体的内容写的有问题,应该先用循环求和,然后在循环外面再求平均值:

double c=0;因为只有这个方法使用,就定义在方法体里面就行了。改后的代码如下:

public double v(double[] a) {
double c = 0;
for (int f = 0; f <=a.length - 1; f++) {//a.length就是整数,不用转换
c = c+a[f];
}
return c/a.length;
}

祝学习愉快!

提问者 慕粉4388281 2017-04-18 23:06:05

我只是把网友的f《a.length改成了f《=a.length-1,应该说原理是一样的,我现在更想知道我的代码错在哪里?

Simple_XXN 2017-04-17 23:48:22

public class TestArrays {

    //求数组元素的平均值

double sum=0;


//计算数组总和,在返回sum/数组长度就是平均值

public double v(double[]a){

   for(int f=0;f<=a.length-1;f++){

       sum=(sum+a[f]);

           }

   return sum/a.length;

}

public static void main(String[] args) {

//定义对象

TestArray4 a=new TestArray4();

//创建float类型的数组并初始化

double[]x={5,5,5};

//调用方法求平均值并打印输出

float h=(float)a.v(x);


System.out.println(h);

}

}


  • 提问者 慕粉4388281 #1
    你好,你的代码是正确的,但是我看了我们俩的代码,大同小异,我只是把你的f《a.length改成了f《=a.length-1,应该说原理是一样的,我现在更想知道我的代码错在哪里?
    2017-04-18 15:31:41
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师