黑马程序员技术交流社区

标题: 三个数求平均数为什么不能用double [打印本页]

作者: ycs6666    时间: 2016-10-17 08:14
标题: 三个数求平均数为什么不能用double
本人刚到黑马,昨天老师布置作业,求“输入的三数平均值”。我先考虑的是定义int,但是因为存在结果为小数情况,所以肯定是不能成立的(例如三数为1,2,2)。然后就把数定义成float,虽然float已经够用,但是为什么定义不能定义为double呢?

代码:
#include <stdio.h>
int main(int argc, const char * argv[]) {
    printf("请输入三个数,中间以逗号隔开\n");
    double a, b, c,d;
    scanf("%f,%f,%f",&a,&b,&c);     ⚠️ Format specifies type "float" but the argument has type "double"
    d = (a + b + c)/3;
    printf("%f\n",d);
    return 0;
}

运行结果:
请输入三个数,中间以逗号隔开
99,98,99
0.000000
Program ended with exit code: 0

运行结果会是零
作者: hbpiaoyi    时间: 2016-10-17 08:40
接收double类型应该用%lf
作者: ycs6666    时间: 2016-10-17 08:45
hbpiaoyi 发表于 2016-10-17 08:40
接收double类型应该用%lf

额,少了个l
作者: 爱编程的阳哥哥    时间: 2016-10-17 16:13
对的,我忘记怎么说了,不知道该叫它们变量还是函数,但那个都有不同类型的占位符的,你在黑马老师肯定都讲解到了,我在家看了两天视频都知道

作者: Stone_熊小叔    时间: 2016-10-19 23:48
float 4个字节,double 8个字节,内存问题

作者: 名侦探柯基    时间: 2016-10-25 11:19
其实定义int也可以吧,result=(a+b+c)/3.0f




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2