为什么这样不对呢

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

qq_慕斯5286271

2019-07-09 14:56

#include <stdio.h>

int main()

{

    double num = 2.5;      

    int num = (int)num;

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

    return 0;

}


写回答 关注

7回答

  • 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 的值

C语言入门

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

926026 学习 · 20793 问题

查看课程

相似问题