A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本人刚到黑马,昨天老师布置作业,求“输入的三数平均值”。我先考虑的是定义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

运行结果会是零

6 个回复

正序浏览
其实定义int也可以吧,result=(a+b+c)/3.0f
回复 使用道具 举报
float 4个字节,double 8个字节,内存问题
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
对的,我忘记怎么说了,不知道该叫它们变量还是函数,但那个都有不同类型的占位符的,你在黑马老师肯定都讲解到了,我在家看了两天视频都知道
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
hbpiaoyi 发表于 2016-10-17 08:40
接收double类型应该用%lf

额,少了个l
回复 使用道具 举报
接收double类型应该用%lf

点评

bingo  发表于 2016-10-25 11:21
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马