我正在尝试对数字列表进行排序,以便它像这样显示(在平均数字之上的星号旁边:]
53
56
68
78*
79*
80*
89*
90*
100*
我已经尝试过了(分数是我的数字数组):
for (int i = 0; i < scores.length; i++) {
if (scores[i] > average) {
System.out.println(scores[i] + "*");
}
}
还有这个:
for (double element : scores) {
int aboveAvg = 0;
for (int i = 0, i <scores.length; i++){
if (scores[i] > average) {
aboveAvg++;
System.out.println(element + "*");
}
}
}
您可以执行以下操作:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Main {
public static void main(String[] pArgs) {
List<Integer> numList = new ArrayList<Integer>();
numList.add(53);
numList.add(100);
numList.add(56);
numList.add(90);
numList.add(68);
numList.add(89);
numList.add(78);
numList.add(89);
numList.add(80);
int sum = 0, average = 0;
for (Integer n : numList) {
sum += n;
}
average = sum / numList.size();
System.out.println("Average: " + average);
Collections.sort(numList);
for (Integer n : numList) {
if (n > average) {
System.out.println(n + "*");
} else {
System.out.println(n);
}
}
}
}
输出:
Average: 78
53
56
68
78
80*
89*
89*
90*
100*
使用ArrayList而不是数组。然后您可以使用以下顺序将其升序排序:
Collections.sort(list);
像以前一样循环遍历它。