5

在课堂上,我们必须使用点积编写一个小代码来找到两个数组(数组 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);
    }
}
4

2 回答 2

25

n不是循环控制变量,而是a.length越界索引。你可能是说

sum += a[i] * b[i];

而且,虽然直接无关紧要,但您可能意味着您的for-loop 是

for (int i = 0; i < n; i++)

(我认为这就是你n首先拥有的原因。)

于 2013-09-12T23:13:07.707 回答
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);
   }
}
于 2017-04-21T03:57:31.510 回答