如何在Java中将2D数组中的列元素相乘?

时间:2015-09-13 15:44:27

标签: java arrays

我有一个2D阵列3X5,我需要将第一列中的每个元素相乘,依此类推。这是我没有运气的尝试。结果不正确。我尝试将每列存储到一个数组中并将该数组中的每个元素相乘,但我得到相同的结果。

编辑:是的我知道此代码中没有乘法,因为它会产生不正确的产品。

for(int j = 0; j < 5; j++){
        double v = 0.0;
        double[] ex = new double[3];
        double volumeBox1 = 0.0;
        for(int i = 0; i < 3; i++){
            v = d[i][j];
            System.out.println(v);

            for(int z = 0; z < 3; z++){
                ex[z] = v;
            }

        }
        System.out.println("The volume of box " + (j+1) + " is: " + volumeBox1);

1 个答案:

答案 0 :(得分:2)

我假设你的矩阵是5 x 3,这个用例比3 x 5更合乎逻辑和方便:

for (int i = 0 ; i < d.length ; j++) {
     double vol = 1;
     for (int j = 0 ; j < d[i].length ; j++) {
         vol *= d[i][j];
     }
     System.out.println("The volume of box " + (j + 1) + " is: " + vol);
}

这当然可以使用3 x 5矩阵来完成,但我认为迭代列不太合理:

for (int j = 0 ; j < d[0].length ; j++) {
     double vol = 1;
     for (int i = 0 ; i < d.length ; i++) {
         vol *= d[i][j];
     }
     System.out.println("The volume of box " + (j + 1) + " is: " + vol);
}