我的java方法没有给出我想要的结果

时间:2019-03-21 14:40:44

标签: java arrays methods main

public class part2 {
    public static void main(String[] args) {
        int[][] a = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
        int[][] b = {{10, 12, 13}, {14, 15, 16}, {17, 18, 19}};
        double[][] x = matrix(a, b);
        for (int i = 0; i < x.length; i++) {
            System.out.println(x[i][i]);
        }


    }

    public static double[][] matrix(int[][] a, int[][] b) {
        double[][] c = new double[b.length][b[0].length];
        for (int i = 0; i < b.length; i++) {
            for (int j = 0; j < b[0].length; j++) {
                c[i][j] = (4 * a[i][j]) / (3 * b[i][j]);
            }
        }
        return c;
    }
}

我被这些简单的代码所困扰,所以我试图访问我的方法并打印出结果,有人可以帮助我吗?

我的结果必须是这样的0.13 0.22 0.31,0.38 0.44 0.50,0.55 0.59 0.63代码必须将数组a与4乘以数组b与3乘以然后得到这些结果

3 个答案:

答案 0 :(得分:2)

看下一行。

 <bean id="testJaxb2Marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
    <property name="contextPath" value="com.test.foo.bar.cancel.docin:com.test.foo.bar.acept.docin"/>
</bean>

您正在做的是整数除法,并且分母始终大于分子。因此答案永远都是零。

答案 1 :(得分:0)

您的问题是您要在double数据类型中存储整数除法值。 如您所知,整数不能存储任何小数。 快速修复,您可以执行以下操作。

c[i][j]=(4.0*a[i][j])/(3.0*b[i][j]);

答案 2 :(得分:0)

您需要更改

c[i][j] = (4 * a[i][j]) / (3 * b[i][j]);

使用

c[i][j] = (double)(4 * a[i][j]) / (3 * b[i][j]);

您将获得输出:

0.13333333333333333
0.4444444444444444
0.631578947368421