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

我个人觉得这题对我来讲还是有一定难度,如果不借用排序,我只能做到排出前两名,有能够排出前三名的大佬欢迎留言!


import java.util.Arrays;

public class HelloWorld {

    

    //完成 main 方法

    public static void main(String[] args) {

        

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

        

        HelloWorld hello=new HelloWorld();

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

        hello.showThree(scores);

        

    }

    

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

    public void showThree(int[] scores){

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

            int max=scores[0],max2=scores[1],max3=scores[2];

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

                if(max<scores[j]){

                    max2=max;

                    max=scores[j];

                }

            }

            System.out.println(max);

             System.out.println(max2);

             System.out.println(max3);

        }

    }

    

}


正在回答

3 回答

public class HelloWorld {

    //完成 main 方法

    public static void main(String[] args) {

        HelloWorld hello=new HelloWorld();

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

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

        hello.showTop3(scores);

        

    }    

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

    public void showTop3(int[] scores){

        int temp,count=0;

        for(int i=0;i<scores.length-1;i++){  //类似冒泡排序

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

        if(scores[i]<scores[j]){

        temp=scores[i];

        scores[i]=scores[j];

        scores[j]=temp;

        }

        }

        }

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

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

        {

        continue;

        }

        count++;

        if(count<=3){

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

        }

       

        }

    }

  

}


0 回复 有任何疑惑可以回复我~
public static  void showThree(int[] arrays){
    int temp = 0;
    for (int i = 0; i < arrays.length - 1; i++) {
        for (int j = 1; j < arrays.length - i; j++) {
            if (arrays[j] < arrays[j - 1]) {
                temp = arrays[j];
                arrays[j] = arrays[j - 1];
                arrays[j - 1] = temp;
            }
        }
    }
    for (int i = arrays.length-1; i >= arrays.length-3 ; i--) {
        System.out.println(arrays[i]);
    }
}


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

http://www.imooc.com/qadetail/330593,昨晚自己利用冒泡排序重新思考了一下,大家可以看一下。

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

举报

0/150
提交
取消

我个人觉得这题对我来讲还是有一定难度,如果不借用排序,我只能做到排出前两名,有能够排出前三名的大佬欢迎留言!

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