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

这个有错吗,为什么运行不了??(都是按照参考答案写的)(scores怎么错了?)

import java.util.Arrays;

public class HelloWorld {

    

    //完成 main 方法

    public static void main(String[] args) {

        

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

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

        HelloWorld hello=new HelloWorld();

        hello.showTop3(scores);

    }

    

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

    public void showTop3(int[] scores){

        int num = 0;

        Arrays.sort(scores);

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

            

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

            continue;

        }

        num++;

        if(num>3)

        break;

    }

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

    }

    }

    


提问者:qq_慕粉9387772 2019-10-13 13:37

个回答

  • qq_慕粉9387772
    2019-10-17 18:47:40

    我己经改好了,把        System.out.println(scores[i]);    放在for那一层里就行了。ok

  • 晓丶柒
    2019-10-17 18:21:05

    你把int i 放在for循环里面了,输出语句是在for循环外面使用i的

  • 晓丶柒
    2019-10-17 18:16:48

    import java.util.Arrays;

    public class HelloWorld {

        //完成 main 方法

        public static void main(String[] args) {

            HelloWorld h = new HelloWorld();

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

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

            h.paixu(scores);

        }

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

        public void paixu(int[] scores){

            Arrays.sort(scores);

            int count=0;

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

                if(count==3){

                    break;

                }

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

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

                }else{

                    continue;

                }

                count++;

            }

        }

    }


  • Piang
    2019-10-14 15:31:52

    最后一行打印的地方错了,你的i定义是在for循环中的,在循环外就不能访问了。可以去了解一下java的变量作用域。修改代码如下:


    import java.util.Arrays;


    public class HelloWorld {


    // 完成 main 方法


    public static void main(String[] args) {


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


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


    HelloWorld hello = new HelloWorld();


    hello.showTop3(scores);


    }


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


    public void showTop3(int[] scores){


            int num = 0;


            Arrays.sort(scores);


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


                


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


                continue;


            }


            num++;


            if(num>3)


            break;


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


        }


            


        }


    }