【发布时间】:2013-02-13 15:13:36
【问题描述】:
我正在尝试使用两种不同的静态方法来操作两个数组
double dot(double[]a, double[]b)-
double[][] multiply(double[][]a, double[][]b)。
我似乎无法弄清楚如何使用静态方法将两个数组相乘并将那里的值输出给用户我相信我的点积方法很好。我知道我的乘法方法需要使用返回方法,但我不确定如何正确表示它
这是我目前所拥有的:
public class LibMatrix {
public static void main(String[] args) {
double[] a = { 8, 5, 6, 3, 2, 1 };
double[] b = { 9, 8, 4, 1, 4, 7 };
}
public static double dot(double[] a, double[] b) {
double sum = 0.0;
for (int i = 0; i < a.length; i++)
sum += a[i] * b[i];
return sum;
}
public static double[][] multiply(double[][] a, double[][] b) {
int n = 6;
double[][] c = new double[n][n];
for (int i = 0; i < n; i++)
for (int j = 0; i < n; i++)
c[i][j] = a[i][j] * b[i][j];
return a;
}
}
【问题讨论】:
-
第二种方法是矩阵(二维数组),但是你的“静态数组”是一维的……
-
我不确定我是否理解这个问题;你不能调用
main中的方法,引用返回值,然后迭代它们吗? -
return a;->return c; -
另外,
int n = 6;->int n = a.length; assert n == 0 || (a[0].length == n && b.length == n && b[0].length == n); -
更改了 return a;返回 c;在我最初编写的方法中,我只是更改了它以尝试获得某种类型的输出。所以你说的是我的乘法方法不起作用,因为我的数组是一维的,我怎样才能使它们成为二维的?
标签: java arrays methods static