带阵列的点积

Sop*_*Ali 5 java for-loop dot-product

在课堂上,我们必须使用Dot Product编写一个小代码来查找两个数组的总和(数组a和数组b).我编写了我的代码,但是当我运行它时它没有给我答案.我的教授说我的循环是错误的,但我认为不是.是否i<a.length在for循环参数中说不允许的部分?因为即使我把它设置为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);
    }
}
Run Code Online (Sandbox Code Playgroud)

ars*_*jii 25

n不是循环控制变量,它a.length是一个越界索引.你可能意味着

sum += a[i] * b[i];
Run Code Online (Sandbox Code Playgroud)

而且,虽然它没有直接关系,但你可能意味着你的for-loop

for (int i = 0; i < n; i++)
Run Code Online (Sandbox Code Playgroud)

(我认为这就是你n最初的原因.)

  • 不是我们都去过那里. (17认同)