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);
}
}
这里乱码的原因我想是因为你在输出成绩的时候没有用 Arrays.toString() 方法将你自己定义的 grade 数组转化为字符串类型,所以你得到的是乱码,可以在去看一下数组第一、二节哈。当然,按照练习的输出要求,是要分行输出的,所以还是用 for 循环遍历 grade 数组的元素,然后分别输出好了。
另外,for 循环的括号里是可以有多个变量的,就像你写的这样,只要用 ',' 隔开就好了,你写的很好啊,但是你在确保只输出前三名成绩的方法上做错了,按你写的,是用 j 控制 grade 中的元素最多只有 3 个,但是将 j++ 放在 for 的 () 里,那么 j++ 会无条件执行。应该将 j 变量的自增放到 if 条件语句中去。
希望对你有帮助。
for循环写错了 ()里面的东西太多了 你不可能不知道for循环的语法吧!这么乱!
直接建议不要写代码。。。错误一堆。。。不是乱,是错误一堆。。。。
你的 for 循环写的好给力呀 ,
Java入门第一季(IDEA工具)升级版
1165552 学习 · 17587 问题
相似问题