package com.H;
import java.util.Arrays;
public class HelloWorld
{
public static void main(String[] args)
{
int scores[]={89,-23,64,91,119,52,73,99,88,77};
int a[]=new int[10];
Arrays.sort(scores);
int num=0;
for(int i=scores.length-1;i>=0;i--)
{
if(scores[i]>=0&&scores[i]<=100)
a[num]=scores[i];
num++;
if(num==3)
break;
}
for(int j=0;j<num;j++)
{
System.out.println(a[j]);
}
}
}
为什么运行结果 输出来第一个数字是0呢!
数组a创建时,默认全是0。arrays.sort排序后是升序,在for循环中scores[9]=119, if(scores[i]>=0&&scores[i]<=100)判断为false, 没有为a[0]赋值,仍然是a[0]=0, 然后num++,num=1.........将for循环加个{ }就OK了
即:
for(int i=scores.length-1;i>=0;i--)
{
if(scores[i]>=0&&scores[i]<=100)
{ a[num]=scores[i];
num++; }
if(num==3)
break;
}