輸出為什么不是[91,89,73],而是[0,0,73]?那兩個(gè)0是怎么回事?
import java.util.Arrays;
public class HelloWorld {
?? ?
??? public static void main(String[] args) {
??????? int [] scores=new int[]{89,-23,64,91,119,52,73};
??????? HelloWorld a = new HelloWorld();
??????? a.b(scores,3);
??? }
?? ?
??? public void b(int[]scores,int number){
??????? int j=0;
???? Arrays.sort(scores);
??????? for(int i=scores.length-1;i>=0;i--){
??????????? if(scores[i]<0||scores[i]>100){
??????????????? continue;
????????????? }else{
????????????? j++;
????????????? int [] three=new int[number];
????????????? System.out.println(j-1);
????????????? System.out.println(scores[i]);
????????????? three[j-1]=scores[i];
????????????? if(j==3){
???????????????? System.out.println(Arrays.toString(three));
???????????????? break;
????????????? }
??????????? }
?????????? ?
??????? }
??? }????????????????? ?
}
2016-12-23
把int [] three=new int[number];放在?for循環(huán)外面就正確了。因?yàn)槊看窝h(huán)都重新定義數(shù)組three,并把之前的值覆蓋,所以前面兩個(gè)元素都為0。