2011-07-13 55 views
-1
public void computeAverage(String [] names, int [] scores, char [] grades){ 
    int av = 0; 
    for (int i = 0; i < names.length; i++) 
     av = (scores[i]++/26); 
    System.out.print(av); 

} 

嗨, 以上是我的代码读取测试成绩的列表,并计算它们的平均值。有26个测试分数。我有麻烦,请帮忙! 谢谢的Java计算数字的平均值从另一个文件

+0

这功课吗? – Perception

+0

不只是搞乱文件 – Josh

回答

1

这里的问题是,在循环的每次迭代过程中,您都要继续写入av变量。此外,它看起来像你不需要namesgrades数组作为参数,因为你没有使用它们。这应该更好的工作:

public void computeAverage(int [] scores) 
{ 
    double average = 0; 
    for (int i = 0; i < scores.length; i++) 
    { 
     average += scores[i]; 
    } 

    average /= scores.length; 

    System.out.print(average); 
} 
0

尝试先将它们全部添加,然后除以总数。这就是你如何计算平均...

+0

是的,我知道,但他们在一个文件中,都存储在数组得分[] – Josh

0

您需要添加的贡献的流水账:

​​

或许更受names.length分裂,甚至更好的离开师到结束。最后,小心整数除法,这可能不会做你认为它的作用。

+0

有没有小数,所以我应该罚款与int的权利? – Josh

1

让我们打破这:

  • 您需要遍历您entires分数阵列,总结每个分数 到正在运行的总

  • 您需要然后除以总分数。如@ cliff.meyers 指出,这是一个平均的定义

  • 作为一个方面说明,你是循环与name.length,但索引 成分。那很不好。

  • 你被一个硬编码常数分开。这也不好。

  • 您不需要函数中的名称或等级来计算平均值。

0
public static int computAverage(int[] scores) 
{ 
    long sum = 0; 
    for(int i : scores) 
    sum += i; 
    return sum/scores.length; 
}