问答详情
源自:2-9 强制类型转换

为什么这样不对呢

#include <stdio.h>

int main()

{

    double num = 2.5;      

    int num = (int)num;

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

    return 0;

}


提问者:qq_慕斯5286271 2019-07-09 14:56

个回答

  • weixin_精慕门5255553
    2019-08-21 10:36:42

    你和上面的浮点型变量定义成一样的了,这样系统会区分不了
    需要重新定义一个整形变量,然后强制转换如:
    int num1=(int)num;
    printf(“num的整数部分是%d\n”,(int)num1);
    这样就可以了


  • 奋斗的小青年_小半仙1o
    2019-07-21 21:16:04

    你这样因为不具备强制转换的要求啊,像这样就具备了

    #include <stdio.h>

    int main()

    {

        double num = 2.5;      //定义浮点型变量num并赋值为2.5

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

        return 0;

    }


  • qq_慕标2117485
    2019-07-21 17:54:17

    类型冲突

    conflicting types for 'num'
         int num = (int)num;


  • 弋枭
    2019-07-09 19:00:03

    #include <stdio.h>
    int main()
    {    
      double num = 2.5;          
      int num2 = (int)num;    
      printf("%d\n", num2);      
      return 0;
    }


  • 弋枭
    2019-07-09 18:59:06

    #include <stdio.h>int main(){    double num = 2.5;          int num2 = (int)num;    printf("%d\n", num2);      return 0;}


  • 慕斯卡6502803
    2019-07-09 15:42:30

    重新定义的整形符号不因与上面double一样

  • weixin_慕丝1418432
    2019-07-09 15:42:02

    #include <stdio.h>

    int main()

    {

        double num = 2.5;      

        int num = (int)num;

        printf("%d\n", (int)num);  

        return 0;

    }

    输出的是 int num 的值