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

代参返回值运行不出,麻烦解答

import java.util.Arrays;

public class HelloWorld {

    

    //完成 main 方法

    public static void main(String[] args) {

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

        HelloWorld hello=new HelloWorld();

        int[] nums=hello.cj(scores);

        System.out.println("前三名:");

        System.out.println(Arrays.toString(nums));

        

    }

    

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

    public int cj(int[] scores )

    {

        int[] num;

        int k=0;

        Arrays.sort(scores);

        for(int i=scores.length-1;i>=0;i--)

        {

            if(k<3)

               if(scores[i]>=0&&scores[i]<=100)

            {

               num[k]=scores[i];

                k++;

            }

        }

        return num;

    }

    


提问者:柯一梦 2020-08-14 15:37

个回答

  • 慕虎8195420
    2020-08-14 17:34:39
    已采纳

    1、你定义的返回类型是int,但是你返回的num是int[]

    2、class HelloWorld 少了}


    import java.util.Arrays;


    public class HelloWorld {


        


        //完成 main 方法


        public static void main(String[] args) {


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


            HelloWorld hello=new HelloWorld();


            int[] nums=hello.cj(scores);


            System.out.println("前三名:");


            System.out.println(Arrays.toString(nums));


            


        }


        


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


        public int[] cj(int[] scores )


        {


            int[] num=new int [3];


            int k=0;


            Arrays.sort(scores);


            for(int i=scores.length-1;i>=0;i--)

            {


                if(k<3)

                 {

                   if(scores[i]>=0&&scores[i]<=100)

                {


                   num[k]=scores[i];


                    k++;


                }


            }

            }


            return num;


        }

    }