2013-11-26 47 views
0

我困在一個問題上。我應該添加兩個不同的arrayd的對應單元格,然後用總和填充第三個數組到相應的單元格,例如我有ar1 = {4,6,3}和ar2 = {8,5,6},而我必須填寫第三個數組,其總數爲空,如ar3 = {12,11,9}。這是我到目前爲止的代碼:添加兩個陣列的相應單元

class sumOfArrays 
    { 
    public static void main (String[] args) 
    { 
     int[] arrA = { 11, -27, 89, 17}; 
     int[] arrB = {-3, 24, -9, -16}; 
     int[] sum = { 0, 0, 0, 0}; 


     for(int i = 0; i < arrA.length - 1; i++) 
     { 
     for(int j = 0; i < arrB.length - 1; i++) 
      { 
         sum[arrA[i] + arrB[j]]; 

       } 


     } 




System.out.println("sum: " + sum[0]+"," + sum[1] + "," + sum[2] + "," + sum[3]); 

}}

我堅持,並希望一些指導。謝謝大家先進!

回答

0

您計算了兩個數組中相應數字的總和,但是之後您將其用作sum的索引,並對其執行任何操作。

只需將總和分配到sum數組中的對應索引i即可。

此外,你不需要2個嵌套循環。只需使用一個嵌套循環i,這將用於訪問所有數組。

0

您正在sum []中引用索引而不是存儲值。它應該看起來更像是這樣的:

sum[i] = arrA[i] + arrB[i]; 

另外,如果你只使用一個循環,你可以在我上面做的方式,所有三個數組引用相同的元素。

最後,你應該保持迭代,直到我< arrA.length,不我< arrA.length - 1。否則你最後會跳過一個元素。

0

在你的例子中,你想填充arrA an和arryB的sum數組,並且arrA和arrB的長度是相等的。

然後你需要改變內部的for循環。代碼,如sum[arrA[i] + arrB[j]];,用於從sum數組中獲取索引爲(arrA [i] + arrB [j]])的值。嘗試編譯時會遇到語法錯誤。因爲你不做作業,像int value = sum[arrA[i] + arrB[j]];

for(int j = 0; i < arrB.length - 1; i++) 
    { 
       sum[arrA[i] + arrB[j]]; 

    } 

sum[i] = arrA[i] + arrB[i]; 

那麼你會得到正確的結果。控制檯中的輸出如下:

sum: 8,-3,80,0