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

求大神看看我的代码里为什么提示effScores没有初始化?我赋值了啊。。。

import java.util.Arrays;
public class HelloWorld {
    
    //完成 main 方法
    public static void main(String[] args) {
        int[] scores={89,-23,64,91,119,52,73};
        HelloWorld hello=new HelloWorld();
        hello.top3(scores);      
    }
    
    //定义方法完成成绩排序并输出前三名的功能
    public void top3(int[] scores){
        Arrays.sort(scores);
        System.out.println("考试成绩前三名为:");
        int[] effScores;
        int count=0;
        for(int i=0;i<scores.length-1;i++){
            if(scores[i]<0||scores[i]>100){
                continue;
            }else{
                effScores[count]=scores[i];
                count++;
            }
        }
        if(count>=3){
            for(int j=count-1;j>count-4;j--){
                System.out.println(effScores[j]);
            }
        }else{
            System.out.println("有效成绩不足三个!");
        }
    } 
}


提问者:骑猪撞飞机 2015-10-22 17:00

个回答

  • 天启之魂
    2015-10-22 18:17:42
    已采纳

    int[] effScores; 这里错了 不能这样定义  定义数组必须明确其长度 比如 int[] effScores=new int[3];