2011-10-28 49 views
0

該想法是創建一個靜態方法,該方法將計算部分填充數組的平均工資。假設numEmployees擁有數組中具有有效數據的元素數量。 numEmployees被傳遞給該方法。查找部分填充數組中的平均值

public static double getAverage(double[ ] numEmployees) 
{ 
double total = 0; 
double average; 
for (int i = 0; i < numEmployees.length; i++) 
total += numEmployees[i]; 

average = total/numEmployees.length; 

return average; 
} 

我是否需要在計數已填充數組的方法中添加一個零件? 像:

int count=0; 
int p=0; 
if (numEmployees[p]>0) 
{ 
count++; 
p++; 
} 

或者我應該在我添加的一部分用於循環的消息中,並改變我總這樣:

for (int i = 0; i < numEmployees.length || numEmployees>0; i++) 
total += numEmployees[i]; 

比越往下

average = total/i; 
+0

P.S. 「numEmployees」數組的名稱更好一些,名字是「employeeSalary」。如果你比他們的薪水更瞭解每個員工,可以考慮創建一個Employee類。 –

回答

5
public static double getAverage(double[] numEmployees) 
{ 
    double total = 0; 
    double count = 0; 
    for (int i = 0; i < numEmployees.length; i++) 
     if (numEmployees[i] > 0) { 
      total += numEmployees[i]; 
      count++; 
     } 

    return total/count; 
} 

請注意,如果在第一個0之後沒有更多的值,那麼檢測到一個時結束循環也是有益的。我在這裏寫的是尋找任何大於0的值,不管0發生在哪裏。

+0

謝謝你隊友,我這麼認爲,但不知道 –

+2

+1,這是正確的做法,但沒有理由'count'應該是一個雙;它應該是一個'int'。 –

+0

大聲笑哎呀,顯然沒有支付attentino那裏... – Steven