有进行代码我没的修改,结果为什么不是2而这么大??

来源:2-9 强制类型转换

慕少1094873

2019-09-01 19:30

https://img3.mukewang.com/5d6bab8d000131eb10860186.jpg有进行代码我没的修改,结果为什么不是2而这么大??

写回答 关注

6回答

  • IT筱唐丶
    2019-09-13 12:43:00
    已采纳

    printf链接的变量,其数据类型与输出格式不匹配.

    那么如果你想要用%d格式输出,相对应的就应该是int一类的整型变量.

    而在之前的定义中,num被定义为一个double型的浮点型变量,不是整数,

    所以在输出之时,不应该链接num,而是对num进行的强制类型转换,

    如果不好理解,可以依照左栏的例题中,定义一个新的int型变量Num,即int Num=(int)num,

    在输出的时候可以链接你定义的int变量Num.

    同样,二楼所链接的(int)num的值,就是我们这里是Num的值,

  • 无邪帝
    2019-09-24 19:39:19

    转换后不会改变原数据的类型及变量值,只在本次运算中临时性转换,所以是printf("num的整数部分是%d\n,(int)num")

  • qq_慕虎6505412
    2019-09-17 23:04:06

    他们好像都没有达到关键,题主问的是为什么浮点型数据num2.5用%d形式输出会是图中的那个结果,虽然我是个小白,但我认真看了,然后.........同问


  • 蝈蝈煮茶
    2019-09-06 21:38:45

    源代码double型与%d冲突。改成int型or改成%f


  • qq_慕哥6282838
    2019-09-05 22:39:24

        printf("num的整数部分是%d\n,(int)num")

  • 慕斯6461362
    2019-09-01 20:28:32

    int 型

C语言入门

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

926851 学习 · 20803 问题

查看课程

相似问题