2016-10-25 59 views
-2

您好我正在創建一個程序,其中輸入一個整數(xs)數組並輸入一個名爲k的變量。該函數查找下一個「k」個連續元素的平均值,並返回包含平均值的另一個數組。 例如由於1,2,3,4的平均值爲2,因此k = 4 xs =(1,2,3,4,5,6)輸出將是(2,3,4)。 2,3,4,5是3; 3,4,5,6是4.但是,我不斷收到錯誤,我做錯了什麼?Java - 負數組大小異常錯誤

static int[] averagek(int k, int[] xs) { 
    int size = (xs.length) - (k-1); 
    int[] averagek = new int[size]; 
    int add = 0; 

    for (int i = 0; i<(xs.length-k); i++){ 
     for (int j = 0; j < (k+1); j++){ 
      add = (add + xs[i+j]); 
     } 
     int average = (add)/k; 
     averagek[i] = average; 
    } 
    return averagek; 

} 
+3

你不斷收到哪些錯誤? – PrestonM

+0

我不斷收到有關數組大小負數的錯誤......我猜測我已經得到了錯誤的大小值或者這些數字,但我無法弄清楚。 – assassinsweed1

回答

0

檢查當您運行方法avaragek時,k不超過xs.length。如果k大於xslength,那麼它將不起作用,因爲變量大小可能是0或負數,並且一半長度爲一個或多個長度。