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

来源:-

Irma_C

2015-10-09 21:49

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

写回答 关注

8回答

  • Kio_Summer
    2015-10-12 16:59:22
    已采纳

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

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

    Irma_C

    噢 谢谢

    2015-10-12 20:33:30

    共 1 条回复 >

  • echo_kinchao
    2015-10-11 21:51:40

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

  • Irma_C
    2015-10-11 16:14:22

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

  • 哈哈大侠
    2015-10-09 22:23:14

    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


  • 哈哈大侠
    2015-10-09 22:21:27

    敲了,没问题啊;

  • 哈哈大侠
    2015-10-09 22:11:41

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


  • 哈哈大侠
    2015-10-09 22:10:18

    我错了加不加都1样

  • 哈哈大侠
    2015-10-09 22:06:55

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

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165172 学习 · 17581 问题

查看课程

相似问题