问答详情
源自:7-1 编程练习

18行报错,真心不知道错在哪里

import java.util.Arrays;


public class HelloWorld {

    

    //完成 main 方法

    public static void main(String[] args) {

        

        HelloWorld hello = new HelloWorld();

        

        int nums[] = {89, -23, 64, 91, 119, 52, 73};

        

        hello.sort(nums);

        

    }

    

    //定义方法完成成绩排序并输出前三名的功能

    public void sort(int[] nums){

        int scores[nums.length];

        int j = 0;

        

        for(int i = 0; i < num.length; i++){

            if((nums[i] < 0) | (nums[i] > 100))continue;

            else{

                scores[j++] = nums[i];

            }

        }

        

        Arrays.sort(scores);

        System.out.println("考试成绩前三名为\n"+scores[0]+"\n"+scores[1]+"\n"+scores[2]);

    }

    

}


提问者:qq_空_4 2017-03-26 15:31

个回答

  • 欢喜哥之鱼在江湖
    2017-03-31 22:02:24

    改成这个啊 

    int[] scores=new int[nums.length];

  • 欢喜哥之鱼在江湖
    2017-03-31 22:01:19

    格式不对,你只是声明了变量没有分配空间给它。另外程序最后scores[]里面的数字改成 6 5 4 这三个。他的排序是升序的


  • 精慕门1389543
    2017-03-26 16:24:48

    import java.util.Arrays;
    
    public class HelloWorld {
        
        //完成 main 方法
        public static void main(String[] args) {
            
            HelloWorld hello = new HelloWorld();
            
            int nums[] = {89, -23, 64, 91, 119, 52, 73};
            
            hello.sort(nums);
            
        }
        
        //定义方法完成成绩排序并输出前三名的功能
        public void sort(int[] nums){
            int[] scores=new int[nums.length];
            int j = 0;
            
            for(int i = 0; i < nums.length; i++){
                if((nums[i] < 0) | (nums[i] > 100))continue;
                else{
                    scores[j++] = nums[i];
                }
            }
            
            Arrays.sort(scores);
            System.out.println("考试成绩前三名为\n"+scores[0]+"\n"+scores[1]+"\n"+scores[2]);
        }
        
    }

    你的scores数组定义的格式不对