import java.util.Arrays;
public class HelloWorld {
//完成 main 方法
public static void main(String[] args) {
HelloWorld hello=new HelloWorld();
int scores[]={89,-23,64,91,119,52,73};
System.out.println("前三名成绩为:");
hello.getScores(scores);
}
//定义方法完成成绩排序并输出前三名的功能
public void getScores(int s[]){
Arrays.sort(s);
int c=0;
for(int i=s.length;i>=0;i--){
if(s[i]>=0&&s[i]<=100){
c=c+1;
if(c<=3){
System.out.println(s[i]);
}
else
break;
}
else
continue;
}
}
}
第一处 public void getScores(int s[]) 括号里面 应该是整数型数组 int[] scores
还有这里for(int i=s.length;i>=0;i--){ 倒叙循环遍历 数组开始下标是0 所以 最后一个 下标不是 length 应该是
scores.length-1
清晰~
我是这个思路 你可以看一下 public class Demo18 { public static void main(String[] args) { //搞一个数组 int[] scores = {89 , -23 , 64 , 91 , 119 , 52 , 73}; //调用方法 Demo18 demo = new Demo18(); demo.getMax(scores); } public void getMax(int[] scores){ //排序 从小到大 Arrays.sort(scores); 定义变量num存储有效数字值 int num = 0; 通过倒叙遍历 这里下标最大值 为 数组长度减一 for(int i = scores.length-1;i>=0;i--){ //判断成绩是否合格 不合格直接进行下一次循环 if(scores[i]>100 || scores[i]<0){ continue; }else{ //得到合格成绩 有效数字加1 num+=1; //大于3时结束循环 if(num>3){ break; } //显示出合格最大的三个成绩 System.out.println(scores[i]); } } } }