为了账号安全,请及时绑定邮箱和手机立即绑定

这个有错吗,为什么运行不了??(都是按照参考答案写的)(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]);

    }

    }

    


正在回答

4 回答

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

0 回复 有任何疑惑可以回复我~

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

1 回复 有任何疑惑可以回复我~

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

        }

    }

}


0 回复 有任何疑惑可以回复我~

最后一行打印的地方错了,你的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]);


    }


        


    }


}


1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信