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

入门第一季的最后编程练习麻烦看下错在哪儿了

import java.util.*;
public class Test1{
    public static void main(String[] args) {
        int [] scores={89,-23,64,91,119,52,73};
        int [] list;
        Test1 hello=new Test1();
        list=hello.show(scores);
        System.out.println(Arrays.toString(list));
    }
    
    //定义方法完成成绩排序并输出前三名的功能
    public int[] show(int [] scores){
        int sum[]=new int[3];
        int count=0;
        int j=0;
        Arrays.sort(scores);
        for(int i=scores.length-1;i>=0;i--){
            if(scores[i]>=0&&scores[i]<=100){            
                sum[j]=scores[i];
                count++;
                j++;
            }
            if(count>3)
                break;
        }
        return sum;
    }
    
}

语法没问题。就是运行的时候出错了。有谁可以帮忙看看么。谢谢

提问者:柒_夜4080291 2016-11-01 17:34

个回答

  • Augus_xu4313989
    2016-11-01 18:57:52
    已采纳

    我把你的代码稍微做了点修改后,运行过是没问题的。但是输出成绩的要求是一行一行的,所以我觉得输出还是放在循环里面比较好。

    import java.util.*;

    public class Test1{

        public static void main(String[] args) {

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

            int [] list=new int[3];

            System.out.println("考试成绩前三名为:");

            Test1 hello=new Test1();

            list=hello.show(scores);

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

        }

        

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

        public int[] show(int [] scores){

            int sum[]=new int[3];

           

            int j=0;

            Arrays.sort(scores);

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

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

                    sum[j]=scores[i];

                    

                    j++;

                }

                if(j>=3)

                    break;

            }

            return sum;

        }

        

    }


  • Mr_W3981193
    2016-11-01 19:10:55

    public class HelloWorld {

        //完成 main 方法

        public static void main(String[] args) {

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

            HelloWorld hello = new HelloWorld();

            hello.grade(numbers);

          

        }

        

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

        public void grade(int [] numbers){

            java.util.Arrays.sort(numbers);

            int n = 0;

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

                if(n>=3){

                    break;

                }

                else{

                    if(numbers[i] > 100||numbers[i]<0){

                    continue;

                    }

                    else{

                    System.out.println(numbers[i]);

                    }

                    n++;

                }

            }

        } 

    }


  • 慕侠2044294
    2016-11-01 18:53:58

    导入的包没有导入正确。少了Array