2011-07-13 52 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; 
}