我的java方法没有给出我想要的结果[重复]

问题描述 投票:-7回答:3

这个问题在这里已有答案:

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相乘然后必须将它们除以得到这些结果

java arrays methods main
3个回答
2
投票

看下面这行。

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

你所做的是整数除法,你的分母总是大于分子。所以答案永远都是零。


0
投票

您的问题是您正在以double数据类型存储整数除法值。您可能知道整数不能存储任何小数。快速修复你可以做这样的事情。

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

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
© www.soinside.com 2019 - 2024. All rights reserved.