平均来自三个不同重量的数字

时间:2015-09-04 12:17:33

标签: c

为什么此代码中的输出等于零? 数字1的权重为2,数字2的权重为3,数字3的权重为5.我无法理解为什么输出= 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;
}

1 个答案:

答案 0 :(得分: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;

P.S。

也许我错了,但如果我理解你在描述中所写的内容,那么我认为你加权平均的计算是不正确的。它应该像

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