仍然在与java握手,直到现在,我已经完成了任务,没有任何打嗝。当我计算我的数组中的值的平均值时,我一直得到不正确的答案。这里是我的代码用于获取的值:为什么我的数组的平均值不正确?
public static int [] inputGrades()
{
Scanner kb = new Scanner (System.in);
int [] iGrades = new int [10];
System.out.print("\nInput test scores, enter -1 when you're finished.\n");
for (int i =0; i<iGrades.length;i++)
{
iGrades[i]=kb.nextInt();
if (iGrades[i] ==-1)
{
break;
}
}
return iGrades;
然后这里是我的阵列平均方法:
public static double averageArray (int [] array, int numElements)
{
int iSum= 0;
double dAverage;
for (int i=0; i<array.length; i++)
{
if (array[i]>0)
{
iSum = iSum + array[i];
}
}
dAverage = iSum/array.length;
System.out.print (dAverage);
return dAverage;
如果我输入比如说10,20,30,40,50,-1。我得到的平均值的输出是15而不是30。任何想法为什么?谢谢。
我还没有越过'ArrayList'然而,有无论如何摆脱未使用的插槽吗? – ph0bolus 2014-12-01 16:44:29
如果您还不应该使用List API,请声明您的数组“足够大”,并将其视为您必须管理的一块已分配内存。在您的评论中声明这是一个依赖项。然后,跟踪您单独收集的值的数量,而不是使用length属性。 – jdv 2014-12-01 16:47:30
@jdv谢谢,我创建了另一个变量'iCount'来做到这一点。 – ph0bolus 2014-12-01 20:44:00