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

错误太多,大家不要嘲笑小白啊,我完全是照着前面学的代码照猫画虎,完全不成样子啊!!!

我不知道一个静态的数组可以只输出部分,所以我想把最先的那个静态数组的排序后符合条件的前三名的值赋值给一个新的数组,然后完全凌乱了啊!

import java.util.Arrays;

public class HelloWorld {

    

    //完成 main 方法

    public static void main(String[] args) {

        HelloWorld hello = new HelloWorld();

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

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

        int places = hello.getRank(3);

        //调用方法并将返回的数组保存在变量中

        System.out.println(Arrays.toString(places));

        

    }

    

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

    public int getRank(int length){

        //带参数的方法

        int[] places=new int[length];

        Arrays.sort(scores);

        //排个序

        for(int i=0;i<7;i++){

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

            continue;    

            }

            //遍历数组把不符合条件的忽略

            places[0]=scores[0];

            places[1]=scores[1];

            places[2]=scores[2];

            //然后把scores数组的前三名赋值给places数组的前三名

            return palces;

            //然后返回places数组

        }

        

    }


提问者:指与点 2015-04-02 00:35

个回答

  • Crazy丶魂
    2015-04-02 10:13:06

    你的scores变量不是全局静态变量,你要当成参数传给getRank()方法,你的方法返回值也不对。

  • 紫凝眉
    2015-04-02 01:27:53

    你返回的是数组,那么你的place也应该是数组