猿问

这样子求成绩的前三名好不好?

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();

        hello.rank(scores);

    }


    

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

   public void rank(int[] scores){

       int[] finalScor=new int [scores.length];

       int i=0;

       Arrays.sort(scores);

       for(int score:scores){

           if(score>=0&&score<=100){ 

               finalScor[i]=score;

               i++;

           }

       }

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

           System.out.println(finalScor[j]);

       }

   }

}


weibo_耗子12437133_0
浏览 1380回答 3
3回答

明云

你确定你写的是成绩? 上面的数组还有负数?后面取成绩的范围为什么是小于100?你数组里还有个119.。。。

心钧

int[] scores = { 89, -23, 64, 91, 119, 52, 73 };        for (int i = 0; i < scores.length - 1; i++) {            for (int j = 0; j < scores.length - i - 1; j++) {                if (scores[j] < scores[j + 1]) {                    int temp = scores[j];                    scores[j] = scores[j + 1];                    scores[j + 1] = temp;                }            }        }        int[] newscores;        newscores = Arrays.copyOfRange(scores, 0, 3);        for (int i : newscores) {            System.out.print(i+";");        }这样也可以……

Its_forever

可以啊,思想都是一样的,先sort后反着打印。也可以自己写一个排序的功能,从大到小。然后打印前三。
随时随地看视频慕课网APP

相关分类

Java
我要回答