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

不知道为什么输不出结果

import java.util.Arrays;

public class HelloWorld {

    

    //完成 main 方法

    public static void main(String[] args) {

        

        double arr[] = {89,-23,64,91,119,52,73};

        HelloWorld hello = new HelloWorld();

        hello.GetGrade(arr);

        

    }

    

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

    public void GetGrade(double array[]){

        int count=0;

        Arrays.sort(array);

        for(int i=array.length-1;i<0;i--){

            while(count<3){

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

                System.out.println(""+array[i]);

                count++;

                }

            }

            

        }

    }


提问者:菜鸟飞呀飞 2015-07-25 14:01

个回答

  • 菜鸟飞呀飞
    2015-07-25 16:50:28

    非常感谢你提醒我了,改成这样也可以,不过我觉得上面那个i>array.length-3不太合适,因为并不能保证数组里的前3位成绩都是在[0-100]里面的,共勉共勉!

     for(int i=array.length-1;i>0;i--){       	
                if(count<3){
                    if((array[i]>=0)&&(array[i]<=100)){
                    System.out.println(""+array[i]);
                    count++;               
                    }
                }


  • 马克约瑟
    2015-07-25 14:25:58

    public void GetGrade(double array[]){
            Arrays.sort(array);
            for(int i=array.length-1;i>=array.length-3;i--){
                System.out.print(array[i] + " ");
            }
        }

    你代码里的i<0就是一个逻辑错误了,还有你压根不需要在搞个while循环