为了账号安全,请及时绑定邮箱和手机立即绑定

把%f改为%d后答案不是10?

#include <stdio.h>

int main()

{

    int a,b,c,d;

    double result;

    a = 1;

    b = 2;

    c = 3;

    d = 4;

    result = a+b+c+d;    //在这里体验哦~

    printf("%d\n", result);

    return 0;

}

用%f的答案是10.000000,我嫌太长了,就改成%d,那答案应该就是整数了。

可是为什么把%f改为%d后答案不是10?

正在回答

2 回答

%f需要后面传入printf的参数为浮点型(double或float),%d则用于整型。而result是整型,用%f自然就错了。

这些格式化指示符必须和后面传入的参数类型相匹配。

0 回复 有任何疑惑可以回复我~
#1

慕沐0066330 提问者

非常感谢!
2015-07-31 回复 有任何疑惑可以回复我~

result被定义为double了 改成int就行了

#include<stdio.h>

int main()

{    

    int a,b,c,d;

    int result;

    a=1;

    b=2;

    c=3;

    d=4;

    result=a+b+c+d;

    printf("%d\n",result);

    return 0;

}

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

把%f改为%d后答案不是10?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信