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

来源:7-1 编程练习

chen7841835

2015-03-26 21:05

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

写回答 关注

2回答

  • 慕哥5457829
    2015-03-27 01:18:49
    已采纳

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

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

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


    chen78...

    我知道了,我昨天调试的有点晕了,我的排序没有按从小到大的输出。谢谢了~~~

    2015-03-27 17:30:58

    共 1 条回复 >

  • 放学路上的小学生
    2015-04-19 17:00:34
    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;
                }          
            }
        }
    }


Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165172 学习 · 17581 问题

查看课程

相似问题