2012-05-18 58 views
-4

有沒有更好的方法來計算兩個雙打的平均值?我如何改進/更正下面的代碼?cpp - std平均值

double original_one, original_two; // can be any double >= 0 
double used_one = original_one; 
double used_two = original_two; 
if (original_one == 0) used_one = 1; 
if (original_two == 0) used_two = 1; 
double average = used_one * used_two/2; // average! 
+0

爲什麼你需要一個0的特例? – Fanael

+10

這不是你如何計算平均值。平均=總和/計數 –

+0

@Fanael可能不需要。我使用它,因爲0 * any_number = 0' – abrahab

回答

2

兩個數字的算術平均值是通過添加它們,再除以2來計算......

double average = (original_one + original_two)/2; 

這是計算平均值的一種方法,還有幾個但這是最常見的。

+1

這是算術平均值。平均值可能意味着很多不同的東西(儘管我沒有看到任何看起來像OP的平均值) – juanchopanza

+0

@juanchopanza平均值是衡量中心趨勢的指標,所以是的,你有權利找到平均值的許多不同方法。然而,OP不是集中趨勢的度量。他的意志總會導致超出價值範圍的價值(無關緊要)。我將編輯以反映所選的特定方法。謝謝。 – NominSim

+0

我需要兩個雙打的「相對」值來創建評分。用'+'表示簡單的平均值似乎可以顯示兩者的重量並與其他人競爭 – abrahab