我需要练习语法。我有一个数字数组,用这些方法可以找到平均值,报告最高数字并报告最低数字。为了报告最高/最低数字,我将对数组进行排序。
但是首先我的问题是报告平均值。我认为,如果我能理解该部分,则最小值/最大值将没有问题。我也尝试将其更改为Driver.randomArray []。getAverage()。

有什么建议吗?提前致谢。
〜水晶

错误代码:


  线程“主”中的异常java.lang.Error:未解决的编译问题:
    randomArray无法解析为类型
  类无法解析为类型
    语法错误,插入“ .class”以完成表达式
  
  在IntegerArray.main(IntegerArray.java:48)


指的是我试图从这条线中求平均值,


  System.out.println(randomArray []。getAverage());


一,驾驶员舱

    import java.util.Arrays;

    public class Driver {


    private static final int MAX = 0;

    public Driver(){
        int[] randomArray = new int [MAX];
        int sum;
        final int MAX;
    }

    public int getAverage(){
        for (int index = 0; index < MAX; index++){
            int sum = 0;
            int[] randomArray = null;
            int average;
            sum = sum + randomArray[index];
            average = sum/MAX;
            return average;}

        }

    public void sortArray(){
        // sort the array from smallest to biggest
          int[] randomArray;
        Arrays.sort(randomArray);

          System.out.println("The sorted array from smallest to biggest is:");
          for (int number : randomArray) {
          System.out.println( + number)}
    }
    public int getMin(){
                int[] randomArray;
              // find the lowest number
                return randomArray[0];

          }
    public int getMax(){
                int[] randomArray;
                // find the highest number
               return randomArray[MAX];

          }


    }


然后是我的主要班级:



    import java.util.Random;
    import java.lang.reflect.Array;
    import java.util.Arrays;


    public class IntegerArray {



    public static void main (String[] args) {
            // set up the constant for the size of the array
            final int MAX = 10;
            int sum = 0;
            int average = 0;

            int[] randomArray = new int [MAX];

            for (int index = 0; index < MAX; index++)

                // values of the array go from 0-10
                randomArray[index] = (int) (Math.random() *10);

            // prints the array
            for (int value : randomArray)
                System.out.println (value);


    System.out.println("The length of the array is: " + randomArray.length);


    System.out.println(randomArray[].getAverage());









        }

    }

最佳答案

您创建方法的方式,例如getAverage()您不能在创建的数组上调用它。另一方面,您可以在创建的Driver对象上调用它们。例如:Driver driver = new Driver(); System.out.println(driver.getAverage());如果要在Array Object上调用它们,则应将它们添加到Array类中(但这比Java更高级)。
在Java代码中,您需要添加;发表声明后,不要忘记他们;)。您的IDE应该警告您有关它们的信息。
创建getMax()方法时,应将数组添加为参数。这样该方法就知道应该为哪个Array对象获得最大数量。例如:

public int getMax(int [] randomArray){
      //找到最高编号
      返回randomArray [MAX];
}


这对于您的所有方法都很重要。

我希望这可以解决您的一些答案,如果不能,请添加评论或其他内容。

所以这是您的代码在那之后:

驱动类别:

import java.util.Arrays;

public class Driver {


    private static final int MAX = 0;

    public Driver() {
        int[] randomArray = new int[MAX];
        int sum;
        final int MAX;
    }

    public int getAverage() {
        int average = 0;
        for (int index = 0; index < MAX; index++) {
            int sum = 0;
            int[] randomArray = null;
            sum = sum + randomArray[index];
            average = sum / MAX;
        }
        return average;
    }

    public void sortArray(int[] randomArray) {
        // sort the array from smallest to biggest
        Arrays.sort(randomArray);

        System.out.println("The sorted array from smallest to biggest is:");
        for (int number : randomArray) {
            System.out.println(+number);
        }
    }

    public int getMin(int[] randomArray) {
        // find the lowest number
        return randomArray[0];

    }

    public int getMax(int[] randomArray) {
        // find the highest number
        return randomArray[MAX];

    }
}


IntegerArray类:

public class IntegerArray {
    public static void main(String[] args) {
        // set up the constant for the size of the array
        final int MAX = 10;
        int sum = 0;
        int average = 0;

        int[] randomArray = new int[MAX];

        for (int index = 0; index < MAX; index++)

            // values of the array go from 0-10
            randomArray[index] = (int) (Math.random() * 10);

        // prints the array
        for (int value : randomArray)
            System.out.println(value);


        System.out.println("The length of the array is: " + randomArray.length);

        Driver driver = new Driver();
        System.out.println(driver.getAverage());
    }
}




在评论中回答问题:

您应该使用getAverage方法将randomArray作为参数,以便该方法知道它应在哪个数组上运行,例如:driver.getAverage(randomArray);

您的getAverage方法也有一些缺陷:
1.您的sum变量应该在循环之外,因为否则每次在循环中进行迭代时,您都将其sum设置为0。
2. int[] randomArray = null;完全不应该执行此行,该行将创建一个NEW int数组并将其值设置为null,而您应该使用给定的int数组作为参数。

因此,您的getAverage方法变为:

public int getAverage(int[] randomArray) {
        int sum = 0;
        for (int index = 0; index < randomArray.length; index++) {
            sum = sum + randomArray[index];
        }
        int average = sum / randomArray.length;
        return average;
    }

10-07 21:43