import java.util.Arrays;
public class HelloWorld {
//完成 main 方法
public static void main(String[] args) {
System.out.println("考试成绩的前三名:");
int scores[] = {89, -23, 64, 91, 119, 52, 73};
HelloWorld hello = new HelloWorld();
int b = hello.count(scores);
System.out.println(b);
}
//定义方法完成成绩排序并输出前三名的功能
public int count(int scores[]){
Arrays.sort(scores);
int num = 0;
for(int i = scores.length-1; i >= 0; i--){
int a = 0;
if(scores[i] > 100 || scores[i] < 0){
continue;
}
a = scores[i];
num++;
if(num > 3){
break;
}
return a;
}
}
}
请问这样错在哪里呢
用带参带返回值可以完成:
package test4;
import java.util.Arrays;
public class Test45 {
//完成 main 方法
public static void main(String[] args) {
System.out.println("考试成绩的前三名:");
int scores[] = {89, -23, 64, 91, 119, 52, 73};
Test45 hello = new Test45();
int[] b = hello.count(scores);//将返回值赋给数组b
System.out.println(Arrays.toString(b));//用Arrays.toString方法输出数组b的内容
}
//定义方法完成成绩排序并输出前三名的功能
public int[] count(int[] scores){//返回值类型应该为数组int[]
int[] a = new int[3];//定义数组a的长度
Arrays.sort(scores);//排序
int num = 0;
for(int i = scores.length-1; i >= 0; i--){
if(scores[i] > 100 || scores[i] < 0){
continue;
}
if(num >= 3){
break;
}else{//数组a赋值前三名的成绩
a[num] = scores[i];
}
num++;
}
return a;//返回数组a的内容
}
}
改动的地方都有注释,可以看着理解一下
你的数组声明就有问题 应该是 int[] scores = {89, -23, 64, 91, 119, 52, 73};吧 还有就是传参 也应该是public int count(int[] scores)