2016-10-25 2 views
-2

こんにちは私は、整数(xs)の配列が入力され、変数がkと呼ばれるプログラムを作成しています。この関数は、次の "k"個の連続した要素の平均を求め、平均値を含む別の配列を返します。 など。 k = 4 xs =(1,2,3,4,5,6)1,2,3,4の平均が2であるため、出力は(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を超えないことを確認します。変数の大きさが0または負数であり、1つまたは複数の長さを持つことになるので、kがxs.lengthより大きい場合は機能しません。

関連する問題