ARUKANA
2019-03-09 17:49
public class HelloWorld {
//完成 main 方法
public static void main(String[] args) {
int[] scores=new int{89,-23,64,91,119,52,73};
HelloWorld hello=new HelloWorld();
hello.Seiseki(scores);
}
//定义方法完成成绩排序并输出前三名的功能
public void Seiseki(int[] scores){
int[] scores=new int[7];
int max=scores[0];
int second=scores[1];
int third=scores[2];
for(int i=0;i<scores.length;i++){
if(scores[i]<0||scores[i]>100){
continue;
}
if(scores[i]>max){
max=scores[i];
}else if(scores[i]>second){
second=scores[i];
}else if(scores[i]>third){
third=scores[i];
}
}
System.out.println("考试成绩的前三名为");
System.out.println(max);
System.out.println(second);
System.out.println(third);
}
}
有点问题,你看如果数组里的第三个数比第一个大,就会把第三个值赋给第一个而且比较过的数之后就用不到了,这时候你的第一个数值就被覆盖了,默认是第一个数值比第二个大,也比第三个大,但是实际情况并不是这样的,修改的话建议你可以用两层循环的冒泡排序,当然也可以用java特有的排序函数,嗯嗯,就这样。
其实编程要求提示那里已经说了,可以利用Arrays.sort(scores);进行排序,再倒序循环,就方便很多
import java.util.*;
public class HelloWorld {
//完成 main 方法
public static void main(String[] args) {
int[] scores={89,-23,64,91,119,52,73};
HelloWorld hello=new HelloWorld();
hello.print(scores);
}
//定义方法完成成绩排序并输出前三名的功能
public static void print(int[] scores) {
Arrays.sort(scores);
int count=0;
for(int i=scores.length-1;i>=0||count<=3;i--) {
if(scores[i]<= 100 &&scores[i]>=0) {
count++;
if(count<3) {
System.out.print(scores[i]+" ");
}
else if(count==3)
System.out.println(scores[i]);
}
}
}
}
这是我的代码你可以看看
scores你是自己传进去的为什么要重新开空间?这里已经错了
Java入门第一季(IDEA工具)升级版
1165172 学习 · 17581 问题
相似问题