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

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

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

weibo_耗子12437133_0 2016-01-13 11:42:29
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]);       }   }}
查看完整描述

3 回答

?
明云

TA贡献1条经验 获得超1个赞

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

查看完整回答
1 反对 回复 2016-01-13
?
心钧

TA贡献11条经验 获得超2个赞

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+";");
        }
这样也可以……

查看完整回答
反对 回复 2016-01-29
?
Its_forever

TA贡献361条经验 获得超328个赞

可以啊,思想都是一样的,先sort后反着打印。也可以自己写一个排序的功能,从大到小。然后打印前三。


查看完整回答
反对 回复 2016-01-13
  • 3 回答
  • 0 关注
  • 1379 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信