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

求大神帮忙看一下哪里出错了

求大神帮忙看一下哪里出错了

社交恐惧症0 2016-10-04 12:12:43
查看完整描述

3 回答

已采纳
?
kaguya

TA贡献8条经验 获得超5个赞

你的sum从头到尾就没变过嘛...

public class Text03 {
   public static void main(String[] args) {
      int[] scores = {98,-23,64,91,119,52,73};
      Arrays.sort(scores);
      int[] arr = new int[3];
      int count = 0;
      for (int i = scores.length - 1; i >= 0; i--) {
         if (scores[i] <= 100 && scores[i] >= 0 && count < 3) {
            arr[count] = scores[i];
            count++;
         }
      }
      System.out.println("前三名的成绩为:"+Arrays.toString(arr));
   }
}


查看完整回答
反对 回复 2016-10-04
  • 社交恐惧症0
    社交恐惧症0
    还是有点看不懂
  • kaguya
    kaguya
    Arrays.sort(scores)是对数组scores进行排序,大的在后面 所以定义一个int[]来保存三个最高分 for循环从后面向前遍历, 判断当遍历的int值在0-100之间且有效值个数小于等于3时 将分数存入int[] 最后输出结果....
  • kaguya
    kaguya
    诶....发出去换行会被抹掉么....算了....楼主对着看看试试....一开始忘记注释了_(:з」∠)_
?
Simon站起来

TA贡献5条经验 获得超1个赞

你的代码没给全,不知道你最后输出了啥,还有就是你System.out.print("前三名成绩为: ");后面的{是什么鬼,按照你的思路我重新实现了下,只能帮你到这了。

public class TopThree {
    public static void main(String[] args) {
        int[] scores = {89,-23,64,91,119,52,73};
        int count = 0;//要统计的个数
        //排序后是升序的,所以从后面开始遍历就好[-23, 52, 64, 73, 89, 91, 119]
        Arrays.sort(scores); 
        System.out.print("前三名成绩为: ");
        for (int i = scores.length - 1; i >= 0; i--) {
            //违反验证
            if (100 < scores[i] || 0 > scores[i]) {
                continue;//跳出当次循环,执行下次
            }
            System.out.print(scores[i] + " ");
            count++;//成功输出一位就自增1
            //统计了3个就跳出循环
            if (count == 3) {
                break;
            }
        }
    }
}
查看完整回答
反对 回复 2016-10-04
?
ziom

TA贡献948条经验 获得超1109个赞

你这是想要输出不高于100分的前三名成绩吗

查看完整回答
反对 回复 2016-10-04
  • 3 回答
  • 0 关注
  • 1405 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信