请问一下我这个哪里错了

请问一下我这个哪里错了

public class AverageDemo {
    //求数组元素的平均值
    public void Arr(float[] arr){
      float avg=0f,sum=0f;
      for(float n:arr){
          sum=sum+n;
      }
      
      avg=sum/arr.length;
      System.out.println("数组的平均值为:"+avg);
      
      
  }
 public static void main(String[] args) {
  //定义对象
 AverageDemo Ad=new AverageDemo();
  //创建float类型的数组并初始化
  float[] i={78.5f,98.5f,65.5f,32.5f,75.5f};
 Ad.Arr(i);
 System.out.println("数组的平均值为:"+avg);
 
 }
}

http://img1.sycdn.imooc.com//climg/5ba2438200015d3109680453.jpg

我把输出写在上面的方法内部结果就是正确的,然后试了下写在主方法里发现一直报错但不知道错在哪,是只能写在上面的方法内部里吗?不太明白

正在回答

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

2回答

有两种解决方法:1)Ad.Arr(i);时在Arr()中输出的内容,那么你main( )中就不用输出了,把main中的“System.out.println(“数组的平均值为”+avg);”删除。2)或者把Arr()中的“ System.out.println("数组的平均值为:"+avg);”删除,但把它的返回值改为public float avg(float arr[]){加上返回类型。最后return avg.那么主方法中可以System.out.println("数组的平均值为:"+ Ad.Arr(i));这样输出。祝:学习愉快

梦想再次起航 2018-09-19 21:17:25

主函数里面并没有定义avg,而且子函数中已经完成了输出平均值的功能 ,把System.out.println(“数组的平均值为”+avg);删去即可。

  • 提问者 李个浪 #1
    可以吧子函数的输出删除吗?还是只能删主方法里面的 我试了删除子函数里输出语句,然后留下主方法的就会报错 报错内容和问题里的图片一样
    2018-09-19 21:59:15
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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