import java.util.Arrays;public class HelloWorld { //完成 main 方法 public static void main(String[] args) { HelloWorld hello=new HelloWorld(); int[] scores={89,-23,64,91,119,52,73}; int[] mals=hello.top(scores); System.out.println("考试成绩的前三名为:"+mals);} public void top(int[] nums){ Arrays.sort(nums); int x=0; int[] mals=new int[3]; for(int i=nums.length-1;i>=0;i--){ if(x<=3){ if(nums[i]<0||nums[i]>100){ continue; } else{ x++; mals[i]=nums[i]; } } return mals[]; } } } //定义方法完成成绩排序并输出前三名的功能我想用带参带返回值的方法做这道题,所以我又new了一个数组以存前三名的成绩,但是报错了,好像是我的mals数组的写法有问题。想请教大家我这道题怎么错了,以及数组的写法,我经常在表示数组的时候不知道正确的写法。谢谢大家!
1 回答
慕盖茨030889
TA贡献2条经验 获得超0个赞
1.top方法有返回值return,要设置返回类型,不能为void
2.System.out.println("考试成绩的前三名为:"+mals);
mals是一个数组,直接输出拿不到值。可以让top方法返回一个String的字符串
逻辑写的有点乱,可以这样写
把mian方法中的mals改成String类型
private static String top(int[] nums) {
Arrays.sort(nums); //按从小到大排序
String mals = "";
for(int i=1;i<=nums.length;i++){
mals += nums[nums.length-i]+" ";
if(i==3){
break; //跳出当前循环
}
}
return mals;
}
添加回答
举报
0/150
提交
取消