在课堂上,我们必须使用Dot Product编写一个小代码来查找两个数组的总和(数组a和数组b)。我编写了我的代码,但是当我运行它时它没有给我答案。我的教授说我的循环是错误的,但我认为不是。是否在for循环参数中不允许i<a.length
的部分?因为即使我把它设置为n,它仍然不能给我总和。
这是我的代码:
public class arrayExample {
public static void main (String [] args) {
int[] a = {1,2,2,1};
int[] b = {1,2,2,1};
int n = a.length;
int sum = 0;
for (int i = 0; i < a.length; i++) {
sum += a[n] * b[n];
}
System.out.println(sum);
}
}
答案 0 :(得分:25)
n
不是循环控制变量,它是a.length
,它是一个越界索引。你可能意味着
sum += a[i] * b[i];
而且,虽然它没有直接关系,但可能意味着你的for
- 循环
for (int i = 0; i < n; i++)
(我认为这就是你首先拥有n
的原因。)
答案 1 :(得分:0)
public class arrayExample
{
public static void main (String [] args)
{
int[] a = {1,2,2,1};
int[] b = {1,2,2,1};
int n = a.length;
int sum = 0;
for (int i = 0; i < n; i++)
{
sum += a[i] * b[i];
}
System.out.println(sum);
}
}