如何得出前三名成绩的呀?
我还是不懂,从后往前遍历,当遍历到i=6,i=5,i=4位置时,scores[i]分别等于52,64,73,此时num=3,再继续遍历num=4,退出了循环,那输出的不是52,64,73了?是怎么得出91,89,73的呀??
我还是不懂,从后往前遍历,当遍历到i=6,i=5,i=4位置时,scores[i]分别等于52,64,73,此时num=3,再继续遍历num=4,退出了循环,那输出的不是52,64,73了?是怎么得出91,89,73的呀??
2016-03-03
public class HelloWorld {
import java.util.Arrays;
//完成 main 方法
public static void main(String[] args) {
HelloWorld getGrades = new HelloWorld(); //创建对象getGrades
int[] result = getGrades.exam(89,-23,64,91,119,52,73);//调用对象并传入参数
}
//定义方法完成成绩排序并输出前三名的功能
public int[] exam(int a,int b,int c,int d,int e,int f,int g){//构造包含参数的exam方法
int[] scores = {a,b,c,d,e,f,g};//创建数组
Arrays.sort(scores); //对数组进行升序排序
int effGra = 0; //定义并初始化有效成绩个数
for (int i = scores.length-1;i >= 0;i--){ //倒序遍历数组
if ((scores[i]<0)||(scores[i]>100)){ //如果成绩小于 0 或大于 100
continue; //则使用 continue忽略此成绩
}
effGra++; //有效成绩+1
if (effGra > 3){ //如果有效成绩数大于 3
break; //则结束循环
}
else{
System.out.printf(scores[i]+"\t"); //只输出成绩的前三名
}
}
return scores;
}
}
举报