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

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

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 回答

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

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

希望对你有帮助。



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

Simple__Garden 提问者

非常感谢!真的!你真的好负责!好感动!
2015-03-23 回复 有任何疑惑可以回复我~

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


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

Simple__Garden 提问者

请问for循环的()里是不是只能有一个变量?
2015-03-13 回复 有任何疑惑可以回复我~
#2

夜枫丶 回复 Simple__Garden 提问者

是的!
2015-03-13 回复 有任何疑惑可以回复我~
#3

Simple__Garden 提问者 回复 夜枫丶

噢噢谢谢你哈~~
2015-03-14 回复 有任何疑惑可以回复我~

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

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

Simple__Garden 提问者

有这么夸张么额……到底哪里错了能提示一下吗?
2015-03-12 回复 有任何疑惑可以回复我~
#2

mongoos

都是这个阶段过来的,就你牛逼
2015-03-14 回复 有任何疑惑可以回复我~

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

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

举报

0/150
提交
取消

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

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