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

来源:7-1 编程练习

柒_夜4080291

2016-11-01 17:34

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;
    }
    
}

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

写回答 关注

3回答

  • 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;

        }

        

    }


    Augus_... 回复柒_夜408...

    这个我也不清楚,我也是刚学的。但我觉得先分配空间应该没有问题。

    2016-11-03 09:28:51

    共 3 条回复 >

  • 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++;

                }

            }

        } 

    }


    柒_夜408...

    谢谢了。楼上解决了问题,主要是想试试带返回值的方法。

    2016-11-02 12:54:16

    共 1 条回复 >

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

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

    柒_夜408...

    包问题。java.util.*;就包括了Array了。

    2016-11-02 12:47:28

    共 1 条回复 >

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

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

1165574 学习 · 17587 问题

查看课程

相似问题