请问怎么没办法输出前三名,是方法哪里写错了

来源:7-1 编程练习

宝慕林5025455

2019-03-26 17:19

package grade;


import java.util.Arrays;


/*1、 考试成绩已保存在数组 scores 中,数组元素依次为 89 , -23 , 64 , 91 , 119 , 52 , 73


2、 要求通过自定义方法来实现成绩排名并输出操作,将成绩数组作为参数传入


3、 要求判断成绩的有效性( 0—100 ),如果成绩无效,则忽略此成绩*/


public class one{

public void grade(int []grades) {

Arrays.sort(grades);

int[] G = new int[3];

int j = 0,q = 0;

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

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

   G[q] = grades[i];

  q++;

  j++;

}

 

if(j > 3) break;

}

for(q=0;q<G.length;q++) {

System.out.println(G[q]);

}

}

}


写回答 关注

4回答

  • qq_慕斯313599
    2019-04-13 01:06:50

    import java.util.Arrays;

    public class HelloWorld{

        public static void main(String[] args){

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

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

            HelloWorld hello=new HelloWorld();

            hello.showTop3(scores);    

        }

       

        

        public void showTop3(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){

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

                    }

                }

            }    

        }

    }


  • 慕莱坞9796870
    2019-04-05 09:42:20

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

            

            

        }

        

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

        public void sortAndPrint(int[] xscores){

            Arrays.sort(xscores);//排序,但默认是升序

            int len = xscores.length;

            int[] scores= new int[len];

            int count =0;//计数

            //把升序变为降序

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

                scores[i]=xscores[len-1-i];

            }

            xscores=scores;

            //输出前三

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

                //验证数据是否有效

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

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

                //找到即输出,计数+1

                count++;

                //找到三个,跳出循环

                if(count==3)

                break;

                }

            }

        }

        

    这是我做的,可用,你可以对比一下

    一艘小船飘啊...

    这里降序可以用倒序法来写啊 直接用 for(int i=scores.length-1; i>=0 ;i--){ }//倒序 从大往小遍历 for(int i=0; i<scores.length; i++){ }//升序 从小往大遍历

    2019-04-09 15:16:38

    共 1 条回复 >

  • 慕莱坞9796870
    2019-04-05 09:41:15
    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.sortAndPrint(scores);                    }        //定义方法完成成绩排序并输出前三名的功能    public void sortAndPrint(int[] xscores){        Arrays.sort(xscores);//排序,但默认是升序        int len = xscores.length;        int[] scores= new int[len];        int count =0;//计数        //把升序变为降序        for(int i=0;i<xscores.length;i++){            scores[i]=xscores[len-1-i];        }        xscores=scores;        //输出前三        for(int i=0;i<xscores.length;i++){            //验证数据是否有效            if(xscores[i]>0&&xscores[i]<100){            System.out.println(xscores[i]);            //找到即输出,计数+1            count++;            //找到三个,跳出循环            if(count==3)            break;            }        }    }


  • 弯曲的小手
    2019-03-26 21:09:30

    太多错了,主函数都没有,上面的代码方法也没,你调用的是其他页面的方法?

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

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

1165172 学习 · 17581 问题

查看课程

相似问题