如何找到2D数组中每列的平均值?

时间:2018-04-22 23:56:41

标签: java

我试图使用名为columnAverage的函数找到我的2d数组中每列的平均值,但我得到的行平均值不是列。任何建议,将不胜感激。这是我的代码。

public class Lluvias {

    public static void printArray(int array[][]){

        for (int[] a : array) { 
            for (int i : a) { 
                System.out.print(i + "\t");
            } 
            System.out.println("\n"); }

    }

    public static void columnAverage(int array[][]){

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

            }
            System.out.println(sum/array[i].length);
            System.out.println();
        }

    }


    public static void main(String[] args) {

        int[][] lluvias = {
            {50,45,60,58},
            {7,3,15,22},
            {12,10,8,17},
            {15,5,20,35},
            {22,30,15,22},
            {50,90,60,100},
            {85,130,20,88},
            {70,75,88,94},
            {65,49,53,105},
            {28,37,29,37},
            {35,15,22,4},
            {17,8,14,0},            
        };


        printArray(lluvias);
        columnAverage(lluvias);

1 个答案:

答案 0 :(得分:1)

您目前正在将行中的每个元素添加到变量sum。

您必须更改内部循环以迭代行数而不是列。

public static void columnAverage(int array[][]) {
    for (int col = 0; col < array[col].length; col++) {
        int sum = 0;
        for (int row = 0; row < array.length; row++) {
            sum += array[row][col];

        }
        System.out.println(sum / array.length);
        System.out.println();
    }
}