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
提交
取消