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

初学,看不出来出错点,请高手帮吗。

package imooc;
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();    
    int[] good=hello.top3(scores);
    }
    //定义方法完成成绩排序并输出前三名的功能
    pubic int[] top3(int[]  scores){
       Arrays.sort(scores);
       int[] good=new int [3];
       for(int i=scores.length-1;i>scores.length-3;i--){
    	   if (scores[i]<100);
    	       if(scores[i]>0);
    	       else continue;
    	   int j=0;
    	   good[j]=scores[i];
    	   j++;
    	   System.out.println(good[j]);
    	   
       }
       return good; 	
    }
}


正在回答

4 回答

http://img1.sycdn.imooc.com//57392d500001ca9705410659.jpg


import java.util.Arrays;

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

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

package com.doe;

import java.util.Arrays;


public class Hello {

    public static void main(String[] args) {
        int[] scores={89,-23,64,91,119,52,73};
        Hello hello=new Hello();
        String info=hello.show(scores);
           System.out.println(info);
    }
        public String show(int[] scores){
           
            Arrays.sort(scores);
            
            return "第一名是"+scores[scores.length-1]+"第二名是"+scores[scores.length-2]+"第三名是"+scores

    [scores.length-3];
        }

}
最简单方法,考虑下这种方法

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

慕函数9049899

你的方法,是建立在已经知道成绩数组的前提下,原始成绩数组是6个元素,其中-23和119是无效的,还剩下4个有效元素,足够题目要求的前三名成绩了。但是,问题来了,假如原始成绩数据是需要用户输入的input.nextInt(),或者未知的,满足不了至少需要三个有效成绩的要求,你的程序就有问题叻。这就是为什么要判断有效数字count的原因了。
2016-05-28 回复 有任何疑惑可以回复我~
#2

熙希君 回复 慕函数9049899

说的甚理,谢谢,是我思维方式简单了
2016-06-02 回复 有任何疑惑可以回复我~

12行public  还有为什么不输出可能是你If else哪里的语法问题

0 回复 有任何疑惑可以回复我~
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();
         int count =hello.sort(scores);
         System.out.println("前三名的数量为:"+count);
    }
    //定义方法完成成绩排序并输出前三名的功能
    public int sort(int[] scores){
        int count=0;
        Arrays.sort(scores);
        for(int i=scores.length-1;i>=0;i--){
            if(count==3){
                break;
            }
            if(scores[i]<=100&&scores[i]>=0){
                System.out.println(scores[i]);
                count++;
            }
            else
                continue;
        }
        return count;
    }   
}


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

举报

0/150
提交
取消

初学,看不出来出错点,请高手帮吗。

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