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

求帮忙看看哪里错了

import java.util.Arrays;

public class HelloWorld {


    public static void main(String[] args) {

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

        System.out.println("考试成绩的前三名为");

       HelloWorld hello=new HelloWorld();

      hello.scoreMaxs(scores);

        

    }

        public void scoreMaxs(int [] scores){

            Arrays.sort(scores);

        int j=0;

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

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

              continue;

          }

          j++;

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

         if(j>3){

             break;

         } 

        }

       

     }

}



正在回答

3 回答

楼上的正解.其实循环判断那里不一定要>=,>也可以的

把输出System.out.println(scores[i]);放出循环就可以了


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

public void scoreMaxs(int [] scores){

Arrays.sort(scores);

int j=0;

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

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

continue;

}

j++;

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

if(j>=3)

break;

}

按照你的思路修改后的。

  1. int i的初始值应该是 scores.length-1。数组长度是7,但最后一个元素是scores[6]就是最后一个了。

    (这里改了就能运行了)

  2. "j>3" 改为 "j>=3"不然会输出4个元素。

  3. break 前后的"{ }"可以省略。

    ***初学者,第一次指点别人,想了好久***

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

最后多了一个花括号 删掉


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

举报

0/150
提交
取消
Java入门第一季(IDEA工具)升级版
  • 参与学习       1165462    人
  • 解答问题       17585    个

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

进入课程

求帮忙看看哪里错了

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