我分配的项目的一个目的是为用户输入的10个变量创建一个数组,并让程序输出输入数字的平均值,并列出低于平均值的数字。我能够毫无问题地获得平均值,但是我的返回低于平均值的数字的代码似乎没有完成任务。例如,如果我将[1,2,3,4,5,6,7,8,9,10]的值输入到数组中,则平均输出为5.5(这很好),但我要从LowerAverage获得的输出为1 ,2,3,4,5有人可以帮助我吗?

public static double BelowAverage(ArrayList<Double> Averages) {
    int i, aveless = 0; double avg = 0;
    for(i = 0; i < Averages.size(); i++)
        avg = Averages.get(i);
    avg /= Averages.size();
    for(i = 0; i < Averages.size(); i++)
        if(Averages.size() < avg)
            aveless++;
    return aveless;
}

最佳答案

如果我理解正确,并且想要一个所有数字均低于平均值的列表,则应更改返回值和代码,如下所示:

public static ArrayList<Double> BelowAverage(ArrayList<Double> Averages) {
    // You already have a method for calculating the average, so use it
    double avg = CalculateAverages(Averages);
    ArrayList<Double> aveless = new ArrayList<Double>();
    int i;
    for(i = 0; i < Averages.size(); i++){
        double number = Averages.get(i);
        if(number < avg){
            aveless.add(number);
        }
    }
    return aveless;
}

09-12 13:58