這個(gè)題排序是從小到大的排序方式 后期結(jié)果為什么是大到???哪個(gè)在控制?
package zjc;
import java.util.Arrays;
public class Test4 {
??
//完成 main 方法
? ? public static void main(String[] args) {
? ? ?//定義score數(shù)組
? ? ?int [] score={89,-23,64,91,119,52,73};?
? ? ?//創(chuàng)建對(duì)象
? ? ?Test4 Hello=new Test4();
? ? ?//輸出成績(jī)
? ? ?System.out.println("考試成績(jī)的前三名為:");
? ? ?//進(jìn)行傳參
? ? ?Hello.Top3(score);
? ? ?
? ? }
? ??
? ? //定義方法完成成績(jī)排序并輸出前三名的功能
? ??
? ? public void Top3(int [] score){
? ? ? ?//對(duì)數(shù)組進(jìn)行排序
? ? ? ?Arrays.sort(score);
? ? ? ?int num=0;
? ? ? ?//遍歷數(shù)組
? ? ? ?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]);
? ? ? ?}
? ? }
}
2017-08-13
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遍歷數(shù)組的時(shí)候就是從scores[]數(shù)組的最后一位scores[length-1]開(kāi)始遍歷的,即從最大的那位開(kāi)始往小的方向遍歷。遇到小于0或大于100的數(shù)就略過(guò),只要符合大于0小于100就輸出。所以即使Arrays.sort的排序是從小到大,但你遍歷是從大到小遍歷的,遍歷后就輸出。所以就是從大到小輸出。
2017-08-13
????????? 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]);
這個(gè)for循環(huán)控制了最后的結(jié)果輸出,for循環(huán)是倒序輸出,由排序完之后數(shù)組的最后一個(gè)數(shù)字開(kāi)始輸出。
2017-08-13
?Arrays.sort(score);