觉得给出的额参考答案有点问题啊

来源:7-1 编程练习

雪原狼

2016-10-15 00:32

我怎么感觉这个题目给出的答案有点问题啊?你们有问题吗?伙计们

写回答 关注

3回答

  • 雷慕
    2016-10-17 02:55:34
    import java.util.Arrays;
    
    public class HelloWorld {
        public static void main(String[] args) {
            HelloWorld hello = new HelloWorld();
            int[] scores = {9,-23,64,91,119,52,73};
            //接收返回的前三名成绩
            int[] top3 = hello.getSorted(scores);
            //输出前三名
            System.out.println("前三名的成绩是:\n" + Arrays.toString(top3));
    
        }
        public int[] getSorted(int[] scores){
            //定义数组用以存储前三名成绩
            int[] top = new int[3];
            
            System.out.println("原始成绩是:\n" + Arrays.toString(scores));
            
            //排序
            Arrays.sort(scores);
            
            System.out.println("排序后的成绩是:\n" + Arrays.toString(scores));
            //原始成绩数组编号,为保证下一个循环继续往后跳,所以这里提前定义,且为了保证从最大值读取,所以这里初始值定义为数组长度-1
            int i=scores.length -1;
            
            //j定义为为前三名数组编号
            for(int j=0;j<3;j++){
                while(i>=0){
                    //如果成绩不在0-100内,跳至下一个(i--),不做赋值
                    if(scores[i]<0 || scores[i]> 100){
                        i--;
                        continue;
                    }
                    //成绩在0-100内,赋值给top数组,并跳出循环,并保证下一个循环内成绩继续往后查询(i--)
                    top[j] = scores[i];
                    i--;
                    break;
                }
            }
            return top;
        }
    }


  • 雪原狼
    2016-10-15 10:09:04

    我自己想了想,分享下:

    import java.util.Arrays;


    public class Homework1 {

        public static void main(String[] args) {

            Homework1 hw=new Homework1();

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

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

                hw.showTop3(scores);

        }

                public void showTop3(int[] scores){

                        int count=0;

                    Arrays.sort(scores);

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

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

                            continue;

                     }else{

                            count++;

                            }

                    if(count>3){

                        break;

                     }

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

            }

        }

    }



  • WiKim
    2016-10-15 01:47:53

    例如?

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

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

1165172 学习 · 17581 问题

查看课程

相似问题