问答详情
源自:7-1 编程练习

大神看看我哪里错了

public static void main(String[] args) {

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

System.out.println("成绩的前三名为");

Arrays.sort(nums);

for(int i=nums.length-1;i>=0;i--){

if(nums[i]>0&&nums[i]<100){

continue;

}

System.out.println(nums[i]);

if(i<nums.length-3){

break;

}


提问者:慕的地1533170 2016-04-02 10:40

个回答

  • 加油_hrh
    2016-04-06 00:32:48
    已采纳

    第一,if条件结构,应该为if(nums[i]<0||nums[i]>100),才跳出;

    第二,if(i<nums.length-3)不对,不能以数组的长度来判断,我们不知道需要几次,只需要选出符合要求的三个最高成绩并排列打印出来就行;

    第三,System.out.println(nums[i]);应该放到后面那个if判断之后,不然循环一次打印一次。

    正确的不用定义方法程序:将你System.out.println("成绩的前三名为");之后改为

    Arrays.sort(nums);

    int count=0;

    for(int i=nums.length-1;i>=0;i--){

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

                continue;

            }

                count++;

            if(count>3){

                break;

            }

    System.out.println(nums[i]);

    }


  • 慕瓜1570949
    2016-04-02 15:58:23


    成绩在0-100 之间跳出了

  • fantastic_V1ex
    2016-04-02 15:18:32

    如果你这道题是和这一章的例题一样的话,那你第一个if应该为

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

  • 隔壁王叔叔家的小孩
    2016-04-02 12:43:37

    &&  替换成||

  • 慕的地1533170
    2016-04-02 10:40:39

    我有导入Arrays的 忘记复制了