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

18行报错,真心不知道错在哪里

import java.util.Arrays;


public class HelloWorld {

    

    //完成 main 方法

    public static void main(String[] args) {

        

        HelloWorld hello = new HelloWorld();

        

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

        

        hello.sort(nums);

        

    }

    

    //定义方法完成成绩排序并输出前三名的功能

    public void sort(int[] nums){

        int scores[nums.length];

        int j = 0;

        

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

            if((nums[i] < 0) | (nums[i] > 100))continue;

            else{

                scores[j++] = nums[i];

            }

        }

        

        Arrays.sort(scores);

        System.out.println("考试成绩前三名为\n"+scores[0]+"\n"+scores[1]+"\n"+scores[2]);

    }

    

}


正在回答

3 回答

改成这个啊 

int[] scores=new int[nums.length];

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

格式不对,你只是声明了变量没有分配空间给它。另外程序最后scores[]里面的数字改成 6 5 4 这三个。他的排序是升序的


0 回复 有任何疑惑可以回复我~
import java.util.Arrays;

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

你的scores数组定义的格式不对

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

qq_空_4 提问者

求详解
2017-03-28 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

18行报错,真心不知道错在哪里

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