为了账号安全,请及时绑定邮箱和手机立即绑定

求大神给找错

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("前三名成绩为:");

       hello.getScores(scores);

       

       

   }

   

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

    public void getScores(int s[]){

        Arrays.sort(s);

   int c=0;

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

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

               c=c+1;

               if(c<=3){

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

               }

               else

               break;

           }

           else

              continue;

       }


}

}


正在回答

3 回答

第一处  public void getScores(int s[])   括号里面 应该是整数型数组  int[]  scores

还有这里for(int i=s.length;i>=0;i--){  倒叙循环遍历  数组开始下标是0   所以 最后一个 下标不是 length  应该是

scores.length-1


1 回复 有任何疑惑可以回复我~
#1

长在椰子树上的猕猴桃 提问者

非常感谢!
2016-10-27 回复 有任何疑惑可以回复我~
#2

Curry_Coder 回复 长在椰子树上的猕猴桃 提问者

一起加油 我感觉自己还是没有程序员的思维
2016-10-27 回复 有任何疑惑可以回复我~
#3

guosheng

请问这个i代表什么啊?
2016-10-30 回复 有任何疑惑可以回复我~

清晰~

0 回复 有任何疑惑可以回复我~
我是这个思路  你可以看一下
public class Demo18 {
	public static void main(String[] args) {
	        //搞一个数组
		int[] scores = {89 , -23 , 64 , 91 , 119 , 52 , 73};
		//调用方法 
		Demo18 demo = new Demo18();
		demo.getMax(scores);	
	}
	public void getMax(int[] scores){
		//排序  从小到大
		Arrays.sort(scores);
		定义变量num存储有效数字值
		int num = 0;
		通过倒叙遍历   这里下标最大值 为 数组长度减一
		for(int i = scores.length-1;i>=0;i--){
		        //判断成绩是否合格 不合格直接进行下一次循环
			if(scores[i]>100 || scores[i]<0){
				continue;
			}else{
			        //得到合格成绩 有效数字加1
				num+=1;
				//大于3时结束循环
				if(num>3){
					break;
				}
				//显示出合格最大的三个成绩
				System.out.println(scores[i]);
			}	
		}	
	}
}


1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第一季(IDEA工具)升级版
  • 参与学习       1165177    人
  • 解答问题       17581    个

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

进入课程

求大神给找错

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信