qq_AlwaysOnline_6
2019-07-18 20:08
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.san(scores);
}
//定义方法完成成绩排序并输出前三名的功能
public void san(int scores [])
{
Arrays.sort(scores);
int fen[]=new int [3];
int j=0;
for (int i=0;i<scores.length;i++)
{
if(scores[i]>=0 && scores[i]<=100)
{
fen[j]=scores[i];
j++;
while(j==3)
break;
}
}
System.out.println(fen[0]+"\n");
System.out.println(fen[1]+"\n");
System.out.println(fen[2]);
}
}
其一,for (int i=0;i<scores.length;i++)改为for(int i=scores.length-1;i>=0;i--),因为排序后大元素在最后面小元素在最前面,所以要逆序循环;
其二,while(j==3){break;}应该为if(j==3){break;},因为break只是跳出一层循环,所以break跳出的是while循环而不是外层的for循环。此外建议(j==3)改为j==fen.length比较好一些。
感谢大佬!已成功运行
你这好像还是在第一个for循环里面吧
Java入门第一季(IDEA工具)升级版
1165514 学习 · 17586 问题
相似问题