阵列平均值

时间:2020-01-28 03:15:50

标签: java

我的代码应该计算出数组值的平均值并打印出来。 我在这里,

public class ArrayAverageTester
{

   public static void main(String[] args)
   {
      int[] numArray =  {12, 17, 65, 7, 30, 88};

     // Create an ArrayAverage object and print the result
     ArrayAverage[] arr = {12, 17, 65, 7, 30, 88};

     System.out.println("The average of the array is " + arr.getAverage()); 

   }
}

还有我的ArrayAverage类,

public class ArrayAverage
{
   private int[] values;

   public ArrayAverage(int[] theValues)
   {
      values = theValues;
   }

   public double getAverage()
   {
     int sum = 0;  

     for(int value : values)
     {
       sum += value;
     }

   return (sum/values.length);
   }
}

我的错误是说int无法转换为ArrayAverage,并且我忘记了声明方法getAverage()或它超出范围。

3 个答案:

答案 0 :(得分:1)

首先,您的getAverage()方法(当前)执行整数数学运算。您可以像这样

public double getAverage() {
    int sum = 0;

    for (int value : values) {
        sum += value;
    }

    return (sum / (double) values.length);
}

接下来,您需要构造一个 ArrayAverage实例(不是它们的数组),然后将构造函数的数组传递给平均值。喜欢,

ArrayAverage arr = new ArrayAverage(numArray);

输出

The average of the array is 36.5

答案 1 :(得分:0)

您的语法不正确。 ArrayAverage[]的意思是“ ArrayAverage个数组”。您应该:

  • 只需声明一个正常的int[]
  • 创建ArrayAverage的单个实例

您得到的错误是编译器正在寻找在数组而不是getAverage()上定义的函数ArrayAverage

以下两种方法均应起作用:

public static void main(String[] args) {
    int[] values = {1, 2, 3, 4, 5};

    double count = 0;
    for (int i = 0; i < values.length; i++) {
        count += values[i];
    }

    count /= values.length;

    System.out.println(count);
}

或者使用您的课程:

public static void main(String[] args) {
    System.out.println(new ArrayAverage(Arrays.asList(1, 2, 3, 4, 5)).getAverage());
}

使用

public class ArrayAverage {
    private int[] values;

    public ArrayAverage(int[] values) {
        this.values = values;
    }

    public double getAverage() {

        double count = 0;
        for (int i = 0; i < values.length; i++) {
            count += values[i];
        }
    return /= values.length;
  }
}

答案 2 :(得分:0)

这是有关面向对象编程的一个基本问题,要测试ArrayAverage类,必须实例化一个对象(为此使用保留字“ new”),并且错误是您正在创建ArrayAverage数组

要使其按需工作,只需要将numArray作为参数发送到ArrayAverage类。

save

答案

数组的平均值为36.0

相关问题