【问题标题】:average of ragged double two dimensional array参差不齐的双二维数组的平均值
【发布时间】:2013-05-01 22:32:57
【问题描述】:

我的 java 编码课作业要求我找到一个双 2d 数组和一个整数 2d 数组的参差不齐的二维数组的平均值。我相信我的代码是正确的,但不是平均数组,而是将其除以 2。任何帮助将不胜感激!

代码:

public static void main(String[] args) {
    // adds to 22
    double[][] a = {{7.0, 6.0, 5.0}, {3.0, 1.0}};

   //adds to 48
    int[][] b = {{4, 6}, {9, 8, 10, 11}};
    int i = 0;
    System.out.println("arrayAverage = " + arrayAverage(a));
    System.out.println("arrayAverage = " + arrayAverage(b));
}

/**
 * computes the average for an array of a double
 */
public static double arrayAverage(double a[][]) {
    double sum = 0.0;

    for (int i = 0; i < a.length; i++) {
        for (int j = 0; j < a[i].length; j++) {
            sum += a[i][j];

        }

    }

    System.out.println("Calculating Double Array");
    return sum / a.length;
}
/**
 * Computes the average for an array of integers.
 */
public static int arrayAverage(int b [][]) {
    int sum = 0;

    for (int i = 0; i < b.length; i++) {
        for (int j = 0; j < b[i].length; j++) {
            sum += b[i][j];

        }

    }

    System.out.println("Calculating Integer Array");
    return sum / b.length;
}

}

run:
Calculating Double Array
arrayAverage = 11.0
Calculating Integer Array
arrayAverage = 24
BUILD SUCCESSFUL (total time: 0 seconds)

【问题讨论】:

    标签: java multidimensional-array average


    【解决方案1】:

    除以a.length 时,就是除以2,因为这是数组a 的长度。数组a中有两项:{7.0, 6.0, 5.0}{3.0, 1.0}

    要平均数组中的所有数字,您需要通过对子数组的长度求和来计算所有数字。声明一个count 变量,并在i for 循环中添加子数组a[i].length 的长度。然后最后除以count

    注意int[][] 整数除法的平均方法,其中小数会被截断。

    【讨论】:

    • 计数变量是什么意思?
    【解决方案2】:

    这就是rgettman的意思

        public static void main(String[] args) {
    
            double[][] a = {{7.0, 6.0, 5.0}, {3.0, 1.0}};
            int[][] b = {{4, 6}, {9, 8, 10, 11}};
            System.out.println("arrayAverage = " + arrayAverage(a));
            System.out.println("arrayAverage= " + arrayAverage(b));
    
        }
    
    
    /**
     * computes the average for an array of a double
     */
    public static double arrayAverage(double a[][]) {
    
        double sum = 0.0;
        int count = 0; 
    
        for (int i = 0; i < a.length; i++) {
            for (int j = 0; j < a[i].length; j++) {
                sum += a[i][j];
                count++;
    
            }
    
        }
    
        System.out.println("Calculating Double Array");
    
        return sum / count;
    }
    
    
    
    
    
    /**
     * Computes the average for an array of integers.
     */
    public static int arrayAverage(int b [][]) {
        int sum = 0;
        int count = 0; 
    
        for (int i = 0; i < b.length; i++) {
            for (int j = 0; j < b[i].length; j++) {
                sum += b[i][j];
                count++;
    
    
            }
    
        }
    
        System.out.println("Calculating Integer Array");
        return sum / count;
    }
    
    
    }
    

    你应该得到正确答案:)

    【讨论】:

    • 感谢你们的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-27
    • 2021-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-27
    相关资源
    最近更新 更多