觉得给出的额参考答案有点问题啊
我怎么感觉这个题目给出的答案有点问题啊?你们有问题吗?伙计们
我怎么感觉这个题目给出的答案有点问题啊?你们有问题吗?伙计们
2016-10-15
import java.util.Arrays; public class HelloWorld { public static void main(String[] args) { HelloWorld hello = new HelloWorld(); int[] scores = {9,-23,64,91,119,52,73}; //接收返回的前三名成绩 int[] top3 = hello.getSorted(scores); //输出前三名 System.out.println("前三名的成绩是:\n" + Arrays.toString(top3)); } public int[] getSorted(int[] scores){ //定义数组用以存储前三名成绩 int[] top = new int[3]; System.out.println("原始成绩是:\n" + Arrays.toString(scores)); //排序 Arrays.sort(scores); System.out.println("排序后的成绩是:\n" + Arrays.toString(scores)); //原始成绩数组编号,为保证下一个循环继续往后跳,所以这里提前定义,且为了保证从最大值读取,所以这里初始值定义为数组长度-1 int i=scores.length -1; //j定义为为前三名数组编号 for(int j=0;j<3;j++){ while(i>=0){ //如果成绩不在0-100内,跳至下一个(i--),不做赋值 if(scores[i]<0 || scores[i]> 100){ i--; continue; } //成绩在0-100内,赋值给top数组,并跳出循环,并保证下一个循环内成绩继续往后查询(i--) top[j] = scores[i]; i--; break; } } return top; } }
我自己想了想,分享下:
import java.util.Arrays;
public class Homework1 {
public static void main(String[] args) {
Homework1 hw=new Homework1();
int []scores=new int[]{ 89 , -23 , 64 , 91 , 119 , 52 , 73};
System.out.println("考试成绩前三名为:");
hw.showTop3(scores);
}
public void showTop3(int[] scores){
int count=0;
Arrays.sort(scores);
for(int i=scores.length-1;i>=0;i--){
if(scores[i]>100||scores[i]<0){
continue;
}else{
count++;
}
if(count>3){
break;
}
System.out.println(scores[i]);
}
}
}
举报