请问大神,这个代码里我哪里写错了?出来的成绩变成乱码了额……我是女生,轻拍~哈哈

来源:7-1 编程练习

Simple__Garden

2015-03-12 16:29

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.scores(scores);
       
    }
   
    //定义方法完成成绩排序并输出前三名的功能
   
    public void scores(int[] scores){
       int[] grade=new int[3];
       Arrays.sort(scores);
 
   for(int i=scores.length-1,j=0;i>=0&&j<3;i--,j++){
       if (scores[i]<0||scores[i]>100){
           continue;
       }
          grade[j]=scores[i];
        
}
 System.out.println("前三名成绩"+grade);
    }
}

写回答 关注

4回答

  • hsin
    2015-03-22 21:55:33
    已采纳

    这里乱码的原因我想是因为你在输出成绩的时候没有用 Arrays.toString() 方法将你自己定义的 grade 数组转化为字符串类型,所以你得到的是乱码,可以在去看一下数组第一、二节哈。当然,按照练习的输出要求,是要分行输出的,所以还是用 for 循环遍历 grade 数组的元素,然后分别输出好了。

    另外,for 循环的括号里是可以有多个变量的,就像你写的这样,只要用 ',' 隔开就好了,你写的很好啊,但是你在确保只输出前三名成绩的方法上做错了,按你写的,是用 j 控制 grade 中的元素最多只有 3 个,但是将 j++ 放在 for 的 () 里,那么 j++ 会无条件执行。应该将 j 变量的自增放到 if 条件语句中去。

    希望对你有帮助。



    Simple...

    非常感谢!真的!你真的好负责!好感动!

    2015-03-23 17:50:02

    共 1 条回复 >

  • 夜枫丶
    2015-03-13 00:07:15

    for循环写错了  ()里面的东西太多了  你不可能不知道for循环的语法吧!这么乱!


    Simple... 回复夜枫丶

    噢噢谢谢你哈~~

    2015-03-14 18:05:19

    共 3 条回复 >

  • 赵之文
    2015-03-12 18:05:44

    直接建议不要写代码。。。错误一堆。。。不是乱,是错误一堆。。。。

    mongoo...

    都是这个阶段过来的,就你牛逼

    2015-03-14 16:50:29

    共 2 条回复 >

  • _Exception
    2015-03-12 16:49:55

    你的 for 循环写的好给力呀  ,

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

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

1165552 学习 · 17587 问题

查看课程

相似问题