0

宿題をしているときに、タイトルに記載されているエラーに直面しましたが、それを削除する方法が見つかりません。これが私がこの問題を抱えている方法です:

public static double LaskeMiidi(double[] luvut)
{
    double ka = Keskiarvo(luvut);
    double miidi = luvut[0];

    for (int i = 0; i < luvut.Length; i++)
    {
        if (luvut[i] - ka < luvut[i + 1] - ka) // The line error points to!
        {
            miidi = luvut[i];
        }
        else
        {
            miidi = luvut[i + 1];
        }
    }
    return miidi;
}

したがって、基本的に問題は、私が言うとluvut[i + 1]、ある時点でこのインデックスが配列の長さを超える可能性があることです。私はプログラミングの初心者に過ぎないので、この問題を解決する方法がわかりません。

4

4 に答える 4

0

配列を定義する場合、アイテムの範囲は 0 ~array.length-1です。だからあなたは書くべきです:

for (int i = 0; i < luvut.Length-1; i++)
于 2013-10-15T21:30:16.007 に答える
0

の場合i = luvut.Length -1luvut[i + 1]配列の境界を超えているため、エラーが発生します。

次のいずれかが必要です。

for (int i = 0; i < luvut.Length - 1; i++)

またはluvut[i + 1]、別の If ブロックで別の方法で問題を処理します。

于 2013-10-15T21:31:24.837 に答える