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

我的代码错误在哪?

总是提示下面的错误,是什么意思呢?还请同学们多多指教;

HelloWorld.java:25: 错误: 进行语法分析时已到达文件结尾

}

 ^

1 个错误

附上我的源码:

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

        hello.sort(scores);   

    }

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

    public void sort(int[] scores){

        Arrays.sort(scores);

        int a = 0;

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

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

                scores[a] = scores[i];

                a++;

            }

    }

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

    for(int i=0;i<3;i++){

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

    }

}


提问者:coolgemen 2016-02-16 00:28

个回答

  • 阿慧
    2016-02-16 10:33:06
    已采纳

    for(int i=scores.length;i>0;i--)这个循坏体中应该int i=scores.length-1,因为数组下标是从0开始,而数组长度是从1开始,所以数组长度会比数组下标大1

  • 火烈鳥
    2016-02-16 10:21:25

    错误提示主要是因为你在最后少了一个 };而你内部代码也有问题,sort排序是从小到大排的;帮你改了一下;你的思路挺不错的。

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

            hello.sort(scores);   

        }

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

        public void sort(int[] scores){

            Arrays.sort(scores);

            int a = 0;

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

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

                    scores[a] = scores[i];

                    a++;

                }

        }

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

        for(int i=a-1;i>(a-4);i--){

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

        }

        }

    }