C中的算术平均程序

时间:2017-09-24 17:48:46

标签: c

我想问你,因为当我运行我的程序时,我得到5和18的算术平均值是11,而不是11.5?我把我的程序放在C:

$(document).on('click','.player_choose', function () {
    $('.modal').modal('hide');
});

由于

5 个答案:

答案 0 :(得分:1)

这是因为你使用的是int而不是float或double。 C中的整数除法将通过舍入输出仅提供整数结果。请使用float而不是int或使用float注释解决方案。

 float c;
 c = (float)(a+b)/2

然而,这些是非常基本的C问题。请阅读C教程或C书籍以获得这些答案。

答案 1 :(得分:1)

修改您的代码,如下所示 -

#include <stdio.h>
 int main(void) {
     float a,b;
     a = 5;
     b = 18;
     printf("La media aritmética de %.f i %.f es %f\n", a, b,(a+b)/2);
     return 0;
 }

目前,您正在获得11.因为当此操作(a+b)/2发生时,它将结果保存为整数。这忽略了浮点值。

编辑:如果您只想打印2个浮点,请执行以下操作 -

printf(“Lamediaaritméticade%.f i%.f es %% 0.2f \ n”,a,b,(a + b)/ 2);

有关详细信息,请参阅此Floating point rounding

答案 2 :(得分:1)

将a和b的数据类型更改为float / double。

答案 3 :(得分:0)

#include

int main(void)

{

 float a,b,c;

 a = 5.0;

 b = 18.0;

 c=(a+b)/2;

 printf("La media aritmética de %f i %f es %f\n", a, b,c  );

 return 0;

}

答案 4 :(得分:0)

代码中的问题是数据类型。除以任何数字时,有时会返回整数或十进制值。

例如,

10/2 = 5和10/4 = 2.5 相除。 因此,请注意分配数据类型

对于您的问题,有多种解决方法

1。更改特定答案存储变量的数据类型

2。更改所有涉及变量的过程的数据类型

3。更改格式说明符

4.Typecasting