亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

這樣子求成績的前三名好不好?

這樣子求成績的前三名好不好?

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 關注
  • 1423 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號