java - 使用驱动程序显示数组中的平均整数

标签 java arrays

我需要练习语法。我有一个数字数组,其中有查找平均值、报告最高数字和报告最低数字的方法。为了报告最高/最低数字,我将对数组进行排序。 但首先我的问题是报告平均值。我认为如果我能理解那部分,那么最小/最大就不会有问题。我也尝试将其更改为 Driver.randomArray[].getAverage() 。

有什么建议吗?提前致谢。 ~ Crystal

错误代码:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: randomArray cannot be resolved to a type Class cannot be resolved to a type Syntax error, insert ". class" to complete Expression

at 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());









        }

    }

最佳答案

  1. 您创建方法的方式,例如。 getAverage() 您无法在您创建的数组上调用它。另一方面,您可以在您创建的驱动程序对象上调用它们。例如:Driver driver = new Driver(); System.out.println(driver.getAverage());如果您想在 Array 对象上调用它们,您应该将它们添加到 Array 类上(但这是比这更高级的 Java)。

  2. 在 Java 代码中,您需要添加 ;声明后不要忘记它们;)。您的 IDE 应该警告您有关它们的信息。

  3. 当您创建 getMax() 方法时,您应该添加数组作为参数。这样该方法就知道它应该为哪个 Array 对象获取最大的数字。例如:

    公共(public) int getMax(int[] 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());
    }
}
<小时/>

回复评论中的问题:

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

您的 getAverage 方法也有一些缺陷: 1. sum 变量应该位于循环之外,否则每次在循环内迭代时都会将 sum 设置为 0。 2.int[] randomArray = null;您根本不应该真正执行此行,此行将创建一个新的 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;
    }

关于java - 使用驱动程序显示数组中的平均整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42742522/

相关文章:

Java程序从eclipse导出后无法运行

php - 仅按数字对数组排序

java - ImageIO如何确定图像的尺寸?

android - 将文件放入二维码

java - Android - 使用线程

java - 如何使目录在 javafx TreeView 中可扩展

java - 将 Java 字节码翻译成其他表示和编程语言

javascript - 在 Javascript 中按数组中的多个对象排序

java - 索引越界 : 1 (java) when passing a string paramater through a method

java - 在PreparedStatement查询中参数化常量的性能后果