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

这个题排序是从小到大的排序方式 后期结果为什么是大到小?哪个在控制?


package zjc;


import java.util.Arrays;


public class Test4 {

  

//完成 main 方法

    public static void main(String[] args) {

     //定义score数组

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

     //创建对象

     Test4 Hello=new Test4();

     //输出成绩

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

     //进行传参

     Hello.Top3(score);

     

    }

    

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

    

    public void Top3(int [] score){

       //对数组进行排序

       Arrays.sort(score);

       int num=0;

       //遍历数组

       for(int i=score.length-1;num<3 && i>0;i--){

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

            continue;

           }

           num++;

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

       }

    }

}


正在回答

3 回答

for(int i=score.length-1;num<3 && i>0;i--){

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

            continue;

           }

           num++;

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

       }

你在用for遍历数组的时候就是从scores[]数组的最后一位scores[length-1]开始遍历的,即从最大的那位开始往小的方向遍历。遇到小于0或大于100的数就略过,只要符合大于0小于100就输出。所以即使Arrays.sort的排序是从小到大,但你遍历是从大到小遍历的,遍历后就输出。所以就是从大到小输出。

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

上进学长 提问者

非常感谢!
2017-08-13 回复 有任何疑惑可以回复我~
#2

nuanchazy

一起努力。共同进步
2017-08-14 回复 有任何疑惑可以回复我~

          for(int i=score.length-1;num<3 && i>0;i--){

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

            continue;

           }

           num++;

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

这个for循环控制了最后的结果输出,for循环是倒序输出,由排序完之后数组的最后一个数字开始输出。

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

 Arrays.sort(score);

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

举报

0/150
提交
取消

这个题排序是从小到大的排序方式 后期结果为什么是大到小?哪个在控制?

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