请大家帮我看下哪里错了,谢谢!!

来源:7-1 编程练习

qq_心机兔子_03655689

2016-07-15 15:39

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

       

        

    }

    

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

    

    public int print(int []scores){

        Arrays.sort(scores);

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

          

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

              for(int j=0;j<3;j++)

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

        }

        }

        }  

}


写回答 关注

2回答

  • 一轩明月
    2016-07-15 18:59:11
    已采纳

    错误:自定义方法public int print(int []scores)规定了返回值类型int,但方法体内无return语句进行返回值操作,故报错

    修正:将int改为void

    代码逻辑问题:  1.if((scores[i])>0&&(scores[i])<100)楼主想用于筛选有效成绩,但在此题环境下较为冗杂,Array.sort()方法是默认升序排列,楼主又使用了(int i=scores.length-1;i>=0;i--)循环条件,加之预设数组中只有一个负值,所以没有必要

    2.条件执行体内的嵌套循环逻辑错误,执行结果会变成一个有效成绩输出三次后,进行下一次有效成绩判断。

    修成建议:1.有效值判定只保留100临界判定

    2.定义一个计数变量,用于记录有效值个数以判断是否终止循环,并删除嵌套循环只输出一次有效值

    qq_心机兔...

    非常感谢!

    2016-07-16 13:24:55

    共 1 条回复 >

  • 学无止境的呆子
    2016-07-15 15:51:15

    方法print没有返回值类型用void,&&表示与运算,||表示或,有一个成绩即可。用计数器进行计算并且输出指定的那个成绩。

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

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

1165172 学习 · 17581 问题

查看课程

相似问题