编写程序,输入 3 个整数,计算并输出它们的平均值(结果保留2位小数)。

这是我写的: #include <stdio.h> int main(void) { int a,b,c; double average; scanf("%d%d%d",&a,&b,&c); average=(a+b+c)/3; printf("average = %.2f\n", average); return 0; } 虽然定义了average为double,但输出来怎么还是整数,比如: 输入2 3 9,出来是4.00

因为这句average=(a+b+c)/3中的“/”是整除符号,所以计算结果会自动取整的。
如果需要保留小数时,必须将其中一个除数转换为浮点数,因此应该改为:
average=(double)(a+b+c)/3 或者
average=(a+b+c)/3.00
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-28
注意average=(a+b+c)/3;这句 首先从右边开始执行,计算出的结果仍为int型 当下一步开始赋值时才会转化为double型 所以,这里的int的4就转为double的4.00本回答被提问者和网友采纳
第2个回答  2018-02-27
average=1.0*(a+b+c)/3
第3个回答  2018-02-27
3改成3.0试试?
相似回答