如何在数组中高于平均值的位置旁边显示一个星号?

问题描述 投票:0回答:2

我正在尝试对数字列表进行排序,以便它像这样显示(在平均数字之上的星号旁边:]

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 + "*");
        }
    }
}
java
2个回答
0
投票

您可以执行以下操作:

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*

0
投票

使用ArrayList而不是数组。然后您可以使用以下顺序将其升序排序:

Collections.sort(list);

像以前一样循环遍历它。

© www.soinside.com 2019 - 2024. All rights reserved.