求帮忙看下T.T
2014-08-30
2 回答
1、第10行,System.out.println(lalala.top3(3));
println方法传入的参数是字符串,你这里传入的是数组,你可以用Arrays.toString方法转换 System.out.println(Arrays.toString(lalala.top3(3)));。你传入数组倒也不会报错,但结果是乱码,我猜可以是这个数组在内存的位置。
2、第28行,int j=0;
你是想用j来记录输出了多少个,但是j不能放在循环里面,否则每次循环j都重新被赋值为0了。所以这里移到循环处面
3、第29行,int scores;
这里scores是数组,应该这样定义,int[] scores = new int[stunums];而且跟前面一样,放在循环外面。
import java.util.Arrays;
public class HelloWorld {
//完成 main 方法
public static void main(String[] args) {
HelloWorld lalala=new HelloWorld();
System.out.println(Arrays.toString(lalala.top3(3)));
}
public int[] top3(int stunums) {
int[] scoress={89,-23,64,91,119,52,73};
Arrays.sort(scoress);
int[] scores = new int[stunums];
int j=0;
for(int i=scoress.length-1;i>=0;i--){
if(scoress[i]<0||scoress[i]>100){
continue;
}
scores[j]=scoress[i];
j++;
if(j==scores.length) break;
}
return scores;
}
}
举报