import java.util.Arrays;
public class HelloWorld {
//完成 main 方法
public static void main(String[] args) {
int[] scores = {89, -23, 64, 91, 119, 52, 73};
HelloWorld hello = new HelloWorld();
hello.post(scores);
}
//定义方法完成成绩排序并输出前三名的功能
public void post(int[] nums){
for(int num:nums){
if(num>100 || num<0){
num = 0;
}
}
Arrays.sort(nums);
System.out.println("考试成绩的前三名为");
for(int i=nums.length-1; i>nums.length-4; i--){
System.out.println(nums[i]);
}
}
}
这里我用了foreach循环,但是怎么数组里面的负数和大于100的数还在啊?看了看别人的代码,也是这样写的啊
楼组,你给num赋值的时候并没有改变数组中的值呀,num只是一个临时变量呢
如果楼组非要用for each循环的话,可以这样改:
public void post(int[] nums){ int j=0; for(int num:nums){ if(num>100 || num<0){ nums[j] = 0; } j++; } Arrays.sort(nums); System.out.println("考试成绩的前三名为"); for(int i=nums.length-1; i>nums.length-4; i--){ System.out.println(nums[i]); } }