分享一下自己写的版本

来源:7-1 编程练习

qq_Definition灬Z_0

2018-06-15 15:21

import java.util.*;
public class HelloWorld {
    //完成 main 方法
    public static void main(String[] args) {
        int[] scores = {89,-23,64,91,119,52,73};
        HelloWorld hello = new HelloWorld();
        hello.sortScores(scores,5);
        
    }
    
    //定义方法完成成绩排序并输出前三名的功能
    public void sortScores(int[] scores,int printNum) {
        if (printNum<0 || printNum>scores.length) {
            print("Invalid Print Number!");
            return;
        }
        int i = scores.length-1;
        boolean isOutOfIndex = false;
        int[] arrayOutput = new int [printNum];
        Arrays.sort(scores);
        for (int j=0;j<printNum;j++) {
            if ((i-j) < 0) {
                print("Too many Invalid scores!");
                isOutOfIndex = true;
                break;
            }
            if (scores[i-j] >=0 && scores[i-j] <= 100) {
                arrayOutput[j] = scores[i-j];
            } else {
                j = j - 1;
                i = i - 1;
            }
        }
        
        if (!isOutOfIndex) {
            print("考试成绩的前"+printNum+"名为:");
            print(arrayOutput);
        }
    }
    
    public static void print(String msg) {
        System.out.println(msg);
    }
    
    public static void print(int[] numbers) {
        for (int i=0;i<numbers.length;i++) {
            System.out.println(numbers[i]);
        }
    }
}


写回答 关注

1回答

  • Master_Yi
    2018-06-16 17:02:27

    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.topThree(scores);

        }

        

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

        

        public void topThree(int[] scores){

            Arrays.sort(scores);

            int num = 0;

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

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

                    num++;

                    if(num > 3){

                        continue;

                    }else{

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

                    }

                }

            }

        }

        

    }


Java入门第一季(IDEA工具)升级版

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

1165611 学习 · 17587 问题

查看课程

相似问题