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

来源:3-1 运算符号是啥

慕沐0066330

2015-07-31 09:26

#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回答

  • onemoo
    2015-07-31 09:53:08
    已采纳

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

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

    慕沐0066...

    非常感谢!

    2015-07-31 09:57:45

    共 1 条回复 >

  • godsmonkey
    2015-10-08 16:40:05

    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;

    }

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926210 学习 · 20797 问题

查看课程

相似问题