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

只输出前三名 不知道哪里不对 求指点

import java.util.Arrays;



public class HelloWorld {


public static void main(String[] args) {

// TODO 自动生成的方法存根

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

 

       Arrays.sort(scores);

       

       for(int i= scores.length ;i>=(scores.length-3);i--){

           int a=0;

           a++;

           System.out.println("第"+a+"名"+" "+scores[i]); 


}


}

}


正在回答

3 回答

循环第一次 i= scores.length,然后scores[i]

此时数组就越界了

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

慕斯4840584 提问者

为啥呢
2015-04-02 回复 有任何疑惑可以回复我~
#2

迷茫_先森 回复 慕斯4840584 提问者

scores.length=7, scores[0]=89 scores[1]=-23 scores[2]=64 scores[3]=91 scores[4]=119 scores[5]=52 scores[6]=73 明白了?
2015-04-03 回复 有任何疑惑可以回复我~
#3

慕斯4840584 提问者 回复 迷茫_先森

原来如此 感激不尽感激不尽
2015-04-04 回复 有任何疑惑可以回复我~

你的意思是不是只输入排好序的前三名:

public class Hello {


public static void main(String[] args) {

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

sort( scores);

}

static void  sort(int scores[]){

int temp=0;

for (int i = 0; i < scores.length; i++) {

for (int j = 0; j < scores.length-1; j++) {

if(scores[j]<scores[j+1]){

temp = scores[j];

scores[j]=scores[j+1];

scores[j+1]=temp;

}

}

}

for (int i = 0; i < scores.length-4; i++) {

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

}

}

}



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

scores[i],   i 是从0开始的!  "scores.length"值为7,scores[i] ,i最大值为6!

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

举报

0/150
提交
取消

只输出前三名 不知道哪里不对 求指点

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