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

找不到问题,求大神支援

import java.util.Arrays;

public class HelloWorld {

    

    //完成 main 方法

    public static void main(String[] args) {

        int [] h={90,98,89,78,68,0};

        HelloWorld hello=new HelloWorld();

        int []g=hello.getScores(h);

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

        for(int d:g){

            System.out.println(d);

        }

        

    }

    

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

    public int[] getScores(int[]a){

        int []b=Arrays.sort(a);

        int []c=new int[3];

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

            if(b[i]<100&&b[i]>0)

            c[i]=b[i];

            else

            c[i]=0;

        }

       return c; 

    }

}

http://img.mukewang.com/577e43060001144d07570567.jpg

提问者:Win_me 2016-07-07 19:55

个回答

  • 好好学习的盛亦晖
    2016-07-12 21:41:41

    你根本没按提示做按。。。

    package com.helloworld;
    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.max(scores);  
       }
       
       //定义方法完成成绩排序并输出前三名的功能
       public void max(int scores[]){
           //nums是用来看是否到了3个
           int i,nums=0;
           //将scores数组升序排序
           Arrays.sort(scores);
           //使用 for 循环遍历数组中的元素,由于要输出的是前三名成绩,所以从后往前遍历,即倒序遍历
           for ( i = scores.length - 1; i >= 0; i-- ) { 
               //如果数字不符合条件,continue跳过循环
               if(scores[i]<0||scores[i]>100){
                   continue;
               }
               nums=nums+1;
               System.out.println(scores[i]);
               if(nums>=3){
                   break;
               }
               }
           
           
       }

    这是我的方法,希望采纳。

  • 慕勒6009647
    2016-07-07 20:44:32

    public class HelloWorld {
        
        //完成 main 方法
        public static void main(String[] args) {
            int[] scores = new int[]{89,-23,64,91,119,52,73};
            sortArray(scores);
        }
        
        //定义方法完成成绩排序并输出前三名的功能
        
        public static void sortArray(int[] arr){
            int temp = 0;
            for(int i = 0 ; i< arr.length; i++){
               if(arr[i]<0 || arr[i] > 100 ){
                    arr[i] = 0;
                }
            }
            for(int i = 0 ; i < arr.length;i++){
                for (int j = i + 1 ; j < arr.length ; j++){
                    if(arr[i]<arr[j]){
                        temp = arr[i];
                        arr[i] = arr[j];
                        arr[j] = temp;
                    }
                }
            }
            for(int i = 0 ; i< arr.length; i++){
                if(i < 3 )
                    System.out.println(arr[i]);
            }
        }
    }

    这是我写的答案,可能有点小麻烦吧,你可以看一下。如果不是因为不知道怎么写,而是因为不知道你的为什么会出现问题的话,可以私聊我,我帮你解释一下。