如何获得2D数组中一个特定列的平均值?

时间:2017-03-18 19:44:26

标签: java

用户将值输入到数组中,然后我想获得任何特定列的平均值。

这是下面的代码:

public class Test2DProcess {

    public static void main( String[] args ) {

        int[][] gradesArray = new int [4][3];
        Scanner input = new Scanner(System.in);

        for (int i=0; i<4; i++) {
            for (int j=0; j<3; j++){
                System.out.println("Enter grade: ");
                gradesArray [i][j] = input.nextInt();
            } 
        }
    }
}

现在假设我要总结这个数组第一列的值然后得到平均值...这意味着位置(0,0)......(1,0)中的值... (2,0)...(3,0)和(4,0)阵列。我该怎么做?

2 个答案:

答案 0 :(得分:1)

同样的方法很有用,别忘了 gradesArray 是[4] [3]网格,所以没有(4,0)元素

int incremental =0;
double ave = 0.0;
for (int i=0; i<4; i++)
{
    incremental += gradesArray[0][i];
}

然后

 ave = incremental / 4.0;

答案 1 :(得分:0)

编辑:存储在稍后要打印的变量中的每个列的平均值。 在您的代码中,您必须先计算for循环中的总和。这是:

int[][] gradesArray = new int[4][3];
    Scanner input = new Scanner(System.in);
    int sumFirst = 0;
    int sumSecond = 0;
    int sumThird = 0;

    for (int i = 0; i < 4; i++) {

        for (int j = 0; j < 3; j++) {

            System.out.println("Enter grade: ");
            gradesArray[i][j] = input.nextInt();
        }

        sumFirst += gradesArray[i][0];
        sumSecond += gradesArray[i][1];
        sumThird += gradesArray[i][2];

    }

    double averageFirst = (double)sumFirst/4;
    double averageSecond = (double)sumSecond/4;
    double averageThird = (double)sumThird/4;