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

哪里出错了,求解!!!!!!!

import java.util.Arrays;
public class HelloWorld {
    
    //完成 main 方法
    public static void main(String[] args) {
    int scores[]={89,-23,64,91,119,52,73};
    HelloWorld hello=new HelloWorld();
    hello.san(scores); 
    }
    
    //定义方法完成成绩排序并输出前三名的功能
    
    public void san(int scores [])
    {
        Arrays.sort(scores);
        int fen[]=new int [3];
        int j=0;
        for (int i=0;i<scores.length;i++)
        {
            if(scores[i]>=0 && scores[i]<=100)
            {
                fen[j]=scores[i];
                j++;
                while(j==3)
                break;
            }
        }
        System.out.println(fen[0]+"\n");
        System.out.println(fen[1]+"\n");
        System.out.println(fen[2]);
    }
    
}

正在回答

3 回答

 其一,for (int i=0;i<scores.length;i++)改为for(int i=scores.length-1;i>=0;i--),因为排序后大元素在最后面小元素在最前面,所以要逆序循环;

其二,while(j==3){break;}应该为if(j==3){break;},因为break只是跳出一层循环,所以break跳出的是while循环而不是外层的for循环。此外建议(j==3)改为j==fen.length比较好一些。

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

九章哀郢

System.out.println(fen[0]+"\n");可不用加"\n",因为rprintln会在字符串后添加换行符,而print则不会。
2019-07-19 回复 有任何疑惑可以回复我~

感谢大佬!已成功运行

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

你这好像还是在第一个for循环里面吧

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

举报

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

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

进入课程

哪里出错了,求解!!!!!!!

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