import java.util.*;
public class Test1{
public static void main(String[] args) {
int [] scores={89,-23,64,91,119,52,73};
int [] list;
Test1 hello=new Test1();
list=hello.show(scores);
System.out.println(Arrays.toString(list));
}
//定义方法完成成绩排序并输出前三名的功能
public int[] show(int [] scores){
int sum[]=new int[3];
int count=0;
int j=0;
Arrays.sort(scores);
for(int i=scores.length-1;i>=0;i--){
if(scores[i]>=0&&scores[i]<=100){
sum[j]=scores[i];
count++;
j++;
}
if(count>3)
break;
}
return sum;
}
}
语法没问题。就是运行的时候出错了。有谁可以帮忙看看么。谢谢
我把你的代码稍微做了点修改后,运行过是没问题的。但是输出成绩的要求是一行一行的,所以我觉得输出还是放在循环里面比较好。
import java.util.*;
public class Test1{
public static void main(String[] args) {
int [] scores={89,-23,64,91,119,52,73};
int [] list=new int[3];
System.out.println("考试成绩前三名为:");
Test1 hello=new Test1();
list=hello.show(scores);
System.out.println(Arrays.toString(list));
}
//定义方法完成成绩排序并输出前三名的功能
public int[] show(int [] scores){
int sum[]=new int[3];
int j=0;
Arrays.sort(scores);
for(int i=scores.length-1;i>=0;i--){
if(scores[i]>=0&&scores[i]<=100){
sum[j]=scores[i];
j++;
}
if(j>=3)
break;
}
return sum;
}
}
public class HelloWorld {
//完成 main 方法
public static void main(String[] args) {
int [] numbers = {89, -23,64,91,119,52,73};
HelloWorld hello = new HelloWorld();
hello.grade(numbers);
}
//定义方法完成成绩排序并输出前三名的功能
public void grade(int [] numbers){
java.util.Arrays.sort(numbers);
int n = 0;
for(int i = numbers.length-1;i >= 0 ;i--){
if(n>=3){
break;
}
else{
if(numbers[i] > 100||numbers[i]<0){
continue;
}
else{
System.out.println(numbers[i]);
}
n++;
}
}
}
}
导入的包没有导入正确。少了Array