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

求大神帮我看下代码,运行报错

package zhuyong1;

import java.util.Arrays;

public class Yoo {

public static void main(String[] args) {

int[] scores={20,-52,39,96,57,45,43};

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

Yoo hello=new Yoo();

hello.showTop3(scores);

}

public void showTop3(int[] scores){

Arrays.sort(scores);

int nums=0;

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

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

continue;

}

nums++;

if(nums>3);{

break;

}

}

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

}


}



提问者:zhuyong918 2015-08-10 23:39

个回答

  • 糖果小僧
    2015-08-11 00:05:01
    已采纳

    1.

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

    这句中的i定义是在for循环里面,而System.out.println(scores[i]);在for外面,i没有定义。

    2.

    if判断语句中scores[0] = -52,满足<0条件了就不会往下执行了。你最后得不到前三名的结果。

    3.

    我改了一下程序:

    import java.util.Arrays;
    
    public class demo {
    	public static void main(String[] args) {
    		int[] scores = { 20, -52, 39, 96, 57, 45, 43 };
    		System.out.println("考试成绩前三名为:");
    		showTop3(scores);
    	}
    	public static void showTop3(int[] scores) {
    		Arrays.sort(scores);
    		for ( int i = scores.length - 1; i > scores.length-1-3; i--) {
    			System.out.println(scores[i]);
    		}
    	}
    }