感觉思路是对的为什么不行呢
不能按照顺序输出,是不是第一个for循环没有进行呢
2015-03-26
你的思路有问题,排序方法错了
改了一下你的代码,你自己运行比较一下吧
//import java.util.Arrays; public class HelloWorld { //完成 main 方法 public static void main(String[] args) { int[] scores = {89, 91, 64, -23, 119, 52, 73}; get(scores); } //定义方法完成成绩排序并输出前三名的功能 private static void get(int scores[]) { if (scores != null && scores.length > 0) { int totalLen = scores.length; //数组长度 int tempInt; //排序:第一个依次跟后面的其他每个成员比较大小,接着第二个依次跟后面的比较大小,以此类推 for (int i = 0; i < totalLen; i++) { for (int j = i + 1; j < totalLen; j++) { if (scores[i] > scores[j]) { tempInt = scores[i]; scores[i] = scores[j]; scores[j] = tempInt; } } } System.out.println("前三名的成绩是:" + scores[totalLen - 1] + ", " + scores[totalLen - 2] + ", " + scores[totalLen -3]); //完成排序后数组内的数字应该是从小到大排列的 System.out.print("----> The int array after sorting is: ["); for (int i = 0; i < scores.length; i++) { System.out.print(scores[i]); System.out.print(i == scores.length - 1 ? "]" : ", "); } } } }
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}; Arrays.sort(scores); System.out.println("考试成绩的前三名为:"); hello.getScores(scores); } //定义方法完成成绩排序并输出前三名的功能 public void getScores(int[] scores){ int count = 0; for(int i=scores.length-1;i>=0;i--){ if(scores[i]<=100 && scores[i] >=0 && count < 3){ System.out.println(scores[i]); count += 1; } } } }
举报