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

不理解,求各位大神道友解答,谢谢谢谢谢.........

package jin;

import java.util.Arrays;

 


public class HelloWorld1{

 public static void main(String[] args){

     HelloWorld1 hello = new HelloWorld1();

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

          Arrays.sort(scores);

          int[] newArrays = hello.getnewArrays(scores);

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

}

          

 public int[] getnewArrays(int[] scores){

 for(int i = 0; i<scores.length; i++){

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

 continue;

     }

     int[] newArrays= {scores[i]};

 //   System.out.println(Arrays.toString(newArrays));

   

 }

      return newArrays; //(这里为什么不能返回数组?????)

                        //(而在方法中设定无返回值,直接输出newArrays就可以! 求解,谢谢谢!!!!)

 

 }

 

  


}


正在回答

3 回答

    public static void main(String[] args) {
        HelloWorld hello = new HelloWorld();
        
        int[] scores =new int[]{89,-23,64,91,119,52,73};
        
        System.out.println("考试成绩的前三名为:");
        hello.print(scores);        
    }
    
    //定义方法完成成绩排序并输出前三名的功能
    public void print(int[] scores){
        //统计有效成绩个数
        int count = 0;
        
        //先对数组进行排序(升序)
        Arrays.sort(scores);
        
        //输出前三名(由于是升序,所以需要倒序遍历)
        for(int i=scores.length-1;i>=0;i--){
            if(scores[i]<0 || scores[i]>100){
                //如果成绩不在0-100范围之内,忽略结此次成绩,束本次循环,接下一次循环,否则继续
                continue;
            }   
        //有效,个数加1
        count++;
        
        //输出成绩
        System.out.println(scores[i]);
        
        //如果成绩个数大于三了,结束循环
        if(count>=3){
            break;
        }
            
        }
    }

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

三分世界 提问者

谢谢回复!!不过我只是想问为什么这里不能返回数组,不是要实现 (输出有效成绩前三名)的功能
2016-01-27 回复 有任何疑惑可以回复我~

import java.util.Arrarys;

public class HelloWorld {

    

    //完成 main 方法

    public static void main(String[] args) {

        int [] scores=new int[] {89,-23,64,91,199,52,73}

        HelloWorld score = new HelloWorld();

          score.fa(scores);

        

        

    }

    

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

    

    public void fa (int [] scores){

        int k;

        Arrares.sort(scores);

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

        for(int i=0; i<scores.length;i++){

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

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

               k++;

               if(k==2){

                   break;

               }

            }

            

        }

        

    }

    

    

    看看我写的超简单


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

因为你的数组创建在循环里了= =也就是你每循环一次,都创建一次= =你把他放到for前面创建就行了。不过你整个代码倒错都是错,拿出去结果也是错的

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

举报

0/150
提交
取消

不理解,求各位大神道友解答,谢谢谢谢谢.........

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