这个问题在这里已有答案:
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相乘然后必须将它们除以得到这些结果
看下面这行。
c[i][j]=(4*a[i][j])/(3*b[i][j]);
你所做的是整数除法,你的分母总是大于分子。所以答案永远都是零。
您的问题是您正在以double数据类型存储整数除法值。您可能知道整数不能存储任何小数。快速修复你可以做这样的事情。
c[i][j]=(4.0*a[i][j])/(3.0*b[i][j]);
你需要改变
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