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

输出为什么不是[91,89,73],而是[0,0,73]?那两个0是怎么回事?

import java.util.Arrays;
public class HelloWorld {
    
    public static void main(String[] args) {
        int [] scores=new int[]{89,-23,64,91,119,52,73};
        HelloWorld a = new HelloWorld();
        a.b(scores,3);
    }
    
    public void b(int[]scores,int number){
        int j=0;
     Arrays.sort(scores);
        for(int i=scores.length-1;i>=0;i--){
            if(scores[i]<0||scores[i]>100){
                continue;
              }else{
              j++;
              int [] three=new int[number];
              System.out.println(j-1);
              System.out.println(scores[i]);
              three[j-1]=scores[i];
              if(j==3){
                 System.out.println(Arrays.toString(three));
                 break;
              }
            }
            
        }
    }                   
}

正在回答

1 回答

把int [] three=new int[number];放在 for循环外面就正确了。因为每次循环都重新定义数组three,并把之前的值覆盖,所以前面两个元素都为0。

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

举报

0/150
提交
取消

输出为什么不是[91,89,73],而是[0,0,73]?那两个0是怎么回事?

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