为了账号安全,请及时绑定邮箱和手机立即绑定

感觉思路是对的为什么不行呢

不能按照顺序输出,是不是第一个for循环没有进行呢

正在回答

4 回答

你的思路有问题,排序方法错了

改了一下你的代码,你自己运行比较一下吧

//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 ? "]" : ", ");
            }
        }
    }
}


1 回复 有任何疑惑可以回复我~
#1

chen7841835 提问者

我知道了,我昨天调试的有点晕了,我的排序没有按从小到大的输出。谢谢了~~~
2015-03-27 回复 有任何疑惑可以回复我~
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;
            }          
        }
    }
}


2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

感觉思路是对的为什么不行呢

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信