为了账号安全,请及时绑定邮箱和手机立即绑定

正在回答

5 回答

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
       hello.showTop3(scores); //调用方法,传人成绩数组 
        
    }
    
    //定义方法完成成绩排序并输出前三名的功能
    public void showTop3(int[] scores){
        Arrays.sort(scores);  //使用Arrays.sort()方法实现数组排序
        int num =0;  //保持有效的成绩数量
    for (int i= scores.length-1;i>=0;i--){ //倒序遍历数组中的每一个元素
        if(scores[i]<0||scores[i]>100){  //判断程序的有效性
                continue;  //如果成绩无效,则跳出本次循环,忽略此成绩
        }
                    num++; //有效成绩加1
                    if(num>3){//判断有效成绩数量
                    break; //如果有小成绩大于3,则结束循环,只输出成绩前三名
                        
                    }
                    System.out.println(scores[i]);  //依次输出前三名
                    
                }
            
        }
    
    }

我把我改过的给你贴上  你自己对比一下

0 回复 有任何疑惑可以回复我~

亲 你这里面好多变量名跟你声明的都不一样  你自己再好好检查一下..

很多都是拼写错误

0 回复 有任何疑惑可以回复我~

1.   int[] scores={89,-23,64,91,119,52,73}    6行

少分号

2.   if(scoers[i]<0||scoers[i]>100)和System.out.println(scores[i])    18行  26行

括号用英文括号

3.  int unm =0   16行

0 回复 有任何疑惑可以回复我~
#1

发条橙

19行 continue 也打错了 。。这种简单的错误真是...打字要注意啊..但是感觉你的算法好像有点问题.再细看看
2015-03-28 回复 有任何疑惑可以回复我~
#2

发条橙

if(num==3){//判断有效成绩数量 break; 判断是不是等于3就行了
2015-03-28 回复 有任何疑惑可以回复我~
#3

发条橙 回复 发条橙

第17行 for循环后面的分号去掉
2015-03-28 回复 有任何疑惑可以回复我~
#4

发条橙 回复 发条橙

if(num>3){//判断有效成绩数量 break; 还是要判断是不是大于3
2015-03-28 回复 有任何疑惑可以回复我~
查看1条回复

举报

0/150
提交
取消

各位大神,求看看哪里错了

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信