我分配的项目的一个目的是为用户输入的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;
}