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

正在回答

2 回答

 public int[] b(int[] a){

        int[] c={0,0,0};//定义一个长度为3的整型数组

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

            if(a[i]<0||a[i]>100){continue;}   //除去无效值         

            if(a[i]>c[0]){c[0]=a[i];}//如果数值大于最小值,则进行替换

            Arrays.sort(c); //进行排序,使c[0]永远为最小值

        }

        return c;

    }


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

qq_天池_1

要数值的话就对数组c进行依次输出就好,我是直接返回数组回去了.
2018-08-17 回复 有任何疑惑可以回复我~
#2

qq_天池_1 回复 qq_天池_1

你这个直接在循环里定义int j=0;会使每次循环都是scores[0]=scores[i];后面j++是无效的; scores[j]=scores[i] 这种定义的话,如果最大值在最后几个,会出现两个相同的最大值,后面进行排序会出现重复; 最好不要直接目测无效数量,可以在循环外设一个变量如int n=0,在continue前面进行n++,后面用scores.length-n;
2018-08-17 回复 有任何疑惑可以回复我~

第二个for循环中z的取值越界,应该改为 z=scores.length-1。

第一个for循环的scores[j]=scores[i]  这种赋值方式应该不对,可以换种方式,或重新定义一个数组


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

举报

0/150
提交
取消

帮我看看,怎么才对

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