import java.util.Arrays;
public class HelloWorld {
public static void main(String[] args) {
int [] scores={89,-23,64,91,119,52,73};
System.out.println("考试成绩的前三名为");
HelloWorld hello=new HelloWorld();
hello.scoreMaxs(scores);
}
public void scoreMaxs(int [] scores){
Arrays.sort(scores);
int j=0;
for(int i=scores.length;i>=0;i--){
if(scores[i]<0||scores[i]>100){
continue;
}
j++;
System.out.println(scores[i]);
if(j>3){
break;
}
}
}
}
楼上的正解.其实循环判断那里不一定要>=,>也可以的
把输出System.out.println(scores[i]);放出循环就可以了
public void scoreMaxs(int [] scores){
Arrays.sort(scores);
int j=0;
for(int i=scores.length-1;i>=0;i--){
if(scores[i]<0||scores[i]>100){
continue;
}
j++;
System.out.println(scores[i]);
if(j>=3)
break;
}
按照你的思路修改后的。
int i的初始值应该是 scores.length-1。数组长度是7,但最后一个元素是scores[6]就是最后一个了。
(这里改了就能运行了)
"j>3" 改为 "j>=3"不然会输出4个元素。
break 前后的"{ }"可以省略。
***初学者,第一次指点别人,想了好久***
最后多了一个花括号 删掉