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

如何输出一百分以内的前三名成绩的呢?求大神详解,谢谢!

http://img1.sycdn.imooc.com//5617c5a50001ba1407590561.jpg如何使用num>3时就输出了前三名呢?数组排序后变成了 119,91,89,73,64,52,-23,数组从最后开始遍历,当遍历到num>3即数组元素89时,不是退出循环了吗?那不是输出73,64,52吗?是如何输出91,89,73的呢?小妹不解,求大神详解!谢谢!

正在回答

8 回答

Arrays.sort这个方法是升序排序的,而不是降序,所以,是你搞反了。

建议你以后遇到问题可以试着自己解决,就是以调试的方向去看,你觉得输出反了,哪个不对,都可以用out输出看看

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

Irma_C 提问者

噢 谢谢
2015-10-12 回复 有任何疑惑可以回复我~

你排序之后  付给三个变量 然后输出不就好了

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

我知道这个程序正确,但我的问题是这个程序如何解读的,是如何得出这样的结果的?请注意看我的问题描述,谢谢大神

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

import java.util.Arrays;


public class Hello {


public static void main(String[] args) {

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

Hello hello=new Hello();

System.out.println("前三名有效成绩是:");

hello.ShowTop3(scores);


}


private void ShowTop3(int[] scores) {

Arrays.sort(scores);

int number=0;

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

if(scores[i]<0||scores[i]>100){

continue;

}else

number++;

if(number>3){

break;

}

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

}

}


}

输出:

前三名有效成绩是:

91

89

73


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

敲了,没问题啊;

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

你这程序应该是正确的啊,我敲一下看看


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

我错了加不加都1样

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

你那个//...忽略此成绩}后面是不是要加个else

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

举报

0/150
提交
取消

如何输出一百分以内的前三名成绩的呢?求大神详解,谢谢!

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