慕少224234
2018-05-19 17:52
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();
int [] count= hello.show(scores);
System.out.println("考试成绩的前三名为"+count);
}
//定义方法完成成绩排序并输出前三名的功能
public int [] show(int [] scores){
Arrays.sort(scores);
int num = 0;
for(int i = scores.length-1;i >= 0;i--){
if(scores[i] < 0 ||scores[i] > 100){
continue;
}
num++;
if(num > 3){
break;
}
}
return scores;
}
}
1.System.out.println("考试成绩的前三名为"+count);
这里count是一个数组,不能直接输出,需要用Arrays.toString()类输出
2.return scores;
你返回的scores,其实在方法show里,你并没有改变scores数组里的任何值,返回的还是原来的scores,里面的元素并没有改变。
3.你写的代码还有太多需要改进的地方,太过冗余,多参考慕课给的正确答案。
输出的是数组的指针,感觉题主的需求是输出整个数组吧。可以用Arrays.deepToString,Arrays.deepToString与Arrays.toString不同之处在于,Arrays.deepToString更适合打印多维数组
额,那个不是乱码,是内存的地址值,你要用数组输出前三名的话,应该加个for循环给count增加标签,不过我还是不知道你的需求是什么
import java.util.Arrays;
pubilc class HelloWorld{
public static void main(String[] args){
int[] scores={89,-23,64,91,119,52,73};
HelloWorld hello=new HelloWorld();
hello.getScore(scores);
}
public void getScore(int[] scores){
Arrays.sort(scores);
int count=0;
for(int i=scores.length-1;i>=0;i--){
if(scores[i]<100&&scores[i]>0)
{
System.out.println(scores[i]);
count++;
}
if(count>=3)
break;
}
}
}
定义方法那里
public int 【】 把【】去掉;
Java入门第一季(IDEA工具)升级版
1165172 学习 · 17581 问题
相似问题
回答 2
回答 2