2015-09-04 48 views
0

爲什麼此代碼中的輸出等於零? 與重量的2,具有重量的3和三個數與體重的5.數2數1我無法理解爲什麼輸出= 0。平均來自三個不同重量的數字

#include <stdio.h> 

int main() 
{ 
    float A ,B, C ,MEDIA=0 ; 
    scanf("%f%f%f",&A ,&B,&C); 
    MEDIA+=1/2*A + 1/3*B + 1/5*C; 
    printf("MEDIA = %.1f", MEDIA); 

    return 0; 
} 
+3

你的因素與整數除法... – nneonneo

+2

用整數,的'結果計算1/N'是始終爲零。你應該嘗試'0.5 * A'等。 –

回答

3

MEDIA + = 1/2 * A + 1/3 * B + 1/5 * C;

因爲1/21/31/5將作爲0來評估由於它們都是整數。 代替

1.0/21.0/31.0/5。所以編譯器會知道將結果視爲float

或者

MEDIA+=A/2 + B/3 + C/5; 

附:

也許我錯了,但如果我正確理解你在描述中寫的是什麼,那麼我認爲你的加權平均的計算是不正確的。這應該是這樣的

(A * 2 + B * 3 + C * 5)/ 10