我想用Java編寫一個程序,它接受三個數組並返回刪除了最小值的數組。我想我正在創建新的陣列是錯誤的。雖然它看起來編譯罰款,我每次運行它的時候,我得到以下信息:線程「main」 java.lang.ArrayIndexOutOfBoundsException從Java中的數組中刪除最低值
例外:5
任何幫助將不勝感激!
這裏是我的代碼:
import java.util.Arrays;
class LowestGrade
{
public static void main (String [] args)
{
int [] a = removeLowest (23, 90, 47, 55, 88);
int [] b = removeLowest (85, 93, 42);
int [] c = removeLowest (59, 92, 93, 47, 88, 47);
System.out.println ("a = " + Arrays.toString(a));
System.out.println ("b = " + Arrays.toString(b));
System.out.println ("c = " + Arrays.toString(c));
}
public static int[] removeLowest (int...grades)
{
if (grades.length <= 1)
{
return grades;
}
else
{
int [] newArray = new int [grades.length - 1];
int lowest = grades [0];
for (int i = 0; i < grades.length; i++)
{
for (int n = 0; n <= grades.length; n++)
{
if (grades[n] > lowest)
{
newArray[i] = grades[n];
i++;
}
else
{
lowest = grades[n];
}
}
}
return newArray;
}
}
}
你覺得什麼錯誤意味着什麼?它沒有得到更明顯的爲什麼發生錯誤比這個。 –
錯誤在這裏'如果(等級[n]>最低)'你的n大於'等級'大小。 – Brian
另外你爲什麼使用嵌套循環?你可以在一個簡單的循環中做到這一點(如果你不關心結果數組的順序)。 –