帮我看看,怎么才对

来源:7-1 编程练习

那个一年级的小哥哥

2018-08-16 16:36

https://img2.mukewang.com/5b7537290001ed3505670443.jpg

https://img.mukewang.com/5b7537390001957407020116.jpg谢谢各位大佬解答


写回答 关注

2回答

  • qq_天池_1
    2018-08-17 10:23:10

     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;

        }


    qq_天池_... 回复qq_天池_...

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

    2018-08-17 10:38:53

    共 2 条回复 >

  • 精慕门0561746
    2018-08-16 17:23:08

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

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


Java入门第一季(IDEA工具)升级版

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

1165172 学习 · 17581 问题

查看课程

相似问题