public class HelloWorld {
//完成 main 方法
public static void main(String[] args) {
int[] scores={89,-23,64,91,119,52,73};
HelloWorld hello=new HelloWorld();
System.out.println("考试成绩的前三名为:");
hello.get123(scores);
}
//定义方法完成成绩排序并输出前三名的功能
public void get123(int[] scores){
int max1=scores[0];
int max2=scores[0];
int max3=scores[0];
for(int i=0;i<scores.length;i++){
if(scores[i]>0&&scores[i]<100){
if(max1<scores[i]){
max1=scores[i];
}
}
}
for(int j=0;j<scores.length;j++){
if(scores[j]>0&&scores[j]<100){
if(scores[j]>max2&&scores[j]<max1){
max2=scores[j];
}
}
}
for(int k=0;k<scores.length;k++){
if(scores[k]>0&&scores[k]<100){
if(scores[k]>max3&&scores[k]<max2){
max3=scores[k];
}
}
}
System.out.println(max1);
System.out.println(max2);
System.out.println(max3);
}
为什么这个代码执行出来结果是这样,第三名成绩怎么出不来
考试成绩的前三名为:
91
89
89
int max1=scores[0];
int max2=scores[0];
int max3=scores[0];
你这里赋值就直接三个变量全是89了,我的亲。后面两个循环的里面的条件判断语句
if(scores[j]>max2&&scores[j]<max1){
if(scores[k]>max3&&scores[k]<max2){
这两个条件都为假,里面的赋值语句都没执行过。