public class m8_1 {?public static void main (String[] args) {??System.out.println("前三名的成績依次是:");??int scores []? ={89,-23,64,91,119,52,73};??m8_1 hello =new m8_1();??hello.mY(scores);?}?public void mY (int scores[]){??Arrays.sort(scores);??int count = 1;??for(int i=scores.length; i>=0 ; i--){???if(scores[i] > 0&&scores[i] < 100){????System.out.println(scores[i]);????count++;????if(count==3){????break;?????}????else{?????continue;????}???}???else{????continue;???}?????}?}}
3 回答

慕粉4065503
TA貢獻3條經驗 獲得超1個贊
for(int i=scores.length; i>=0 ; i--){}
i的值不能等于數組的長度的 ,數組的長度是從0開始的。舉個列子長度為2的scores[]數組只有scores[0],scores[1]這兩個,你讓i=2,系統會報錯,所以這句改成for(int i=scores.length-1; i>=0 ; i--){}
還有個錯誤是count這變量是控制for循環的次數的 你要輸出3次就要讓count自加3次,在你的程序中只有2次,可以將count初始值改為0,或者將if中條件count==0改為count>3.

望遠
TA貢獻1017條經驗 獲得超1032個贊
?數組下標越界了
for(int i=scores.length; i>=0 ; i--){
}
應該是從i=scores.length-1開始
還有一個錯誤就是應該將count的值賦初值0,才符合邏輯
添加回答
舉報
0/150
提交
取消