为什么我的代码不起作用 - 终端上怎么说?
why my code not work -what says on the terminal?
你好,我正在尝试 运行 此代码 >>
public class test {
public static void main(String[] args) {
double[] p1={2,3,4};
double[] p2={2,3};
int maxlentharr;
if (p1.length > p2.length) {
maxlentharr = p1.length;
} else {
maxlentharr = p2.length;
}
double[] Array = new double[maxlentharr];
for (int i = 0; i < Array.length; i++) {
Array[i] = 0;
}
for (int k = 0; k < p1.length; k++) {
for (int j = 0; j < p2.length; j++) {
Array[j + k] += (p1[j] * p2[j]);
}
}
for (double element: Array) {
System.out.println("------------------");
System.out.println(element);
}
}
}
但它似乎不起作用,我在代码上没有看到任何错误,但这里是我在终端上得到的信息>>
[![此处][2]][2]
这里有个问题:p1[j]
for (int k = 0; k < p1.length; k++) {
for (int j = 0; j < p2.length; j++) {
Array[j + k] += (p1[j] * p2[j]);
}
}
您正在使用为 p2 创建的索引 [j] 在 p1 上循环。这有可能
导致错误。我想你想做的是 p1[k] * p2[j]
另一个问题可能是数组维度不是 j+k 而实际上只是 j 和 k 之间最大的
数组[j + k] += (p1[j] * p2[j])
应该是
数组[j + k] += (p1[k] * p2[j])
你好,我正在尝试 运行 此代码 >>
public class test {
public static void main(String[] args) {
double[] p1={2,3,4};
double[] p2={2,3};
int maxlentharr;
if (p1.length > p2.length) {
maxlentharr = p1.length;
} else {
maxlentharr = p2.length;
}
double[] Array = new double[maxlentharr];
for (int i = 0; i < Array.length; i++) {
Array[i] = 0;
}
for (int k = 0; k < p1.length; k++) {
for (int j = 0; j < p2.length; j++) {
Array[j + k] += (p1[j] * p2[j]);
}
}
for (double element: Array) {
System.out.println("------------------");
System.out.println(element);
}
} }
但它似乎不起作用,我在代码上没有看到任何错误,但这里是我在终端上得到的信息>>
[![此处][2]][2]
这里有个问题:p1[j]
for (int k = 0; k < p1.length; k++) { for (int j = 0; j < p2.length; j++) { Array[j + k] += (p1[j] * p2[j]); } }
您正在使用为 p2 创建的索引 [j] 在 p1 上循环。这有可能 导致错误。我想你想做的是 p1[k] * p2[j]
另一个问题可能是数组维度不是 j+k 而实际上只是 j 和 k 之间最大的
数组[j + k] += (p1[j] * p2[j])
应该是
数组[j + k] += (p1[k] * p2[j])