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

为什么运行不了吖

#include <stdio.h>

int main()

{

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

    int num= (int)num;

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

    return 0;

}


提问者:qq_江船夜雨闻笛倚晚晴_0 2018-04-22 15:40

个回答

  • 有个看风景的人
    2018-06-21 20:18:04
    已采纳

    我也是新手

    来回答你的问题 自己刚思考过实验过就遇到同类型了


    1 名称不能相同 

    在定义变量时前面必须有“前缀”int char float double等 在定义时=后只能填写对应的值 但你要对应另一个变量的某部分时 =后要有(前缀)以及相应格式 如果()是代表整数的int char 则只能提取后面值的整数部分 如果()是代表小数的float和double 就会直接提取整个值(整数+小数)。

    如果=前代表小数=后为整数 则表现为整数并精确到小数 表现为 整数.00000 ,如果相反,则表现为整数。即以=前为限制格式 =后为提取内容 。当=前后两者相同时我想没必要如此

    2在表示变量的代码部分需要修改为=前的对应格式,毕竟赋值语气中=前命名了他的格式


    所以题主的不唯一解法

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

        int num= (int)nm;

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

        return 0;


  • Cuddless
    2018-04-22 15:52:32

    int可以转double,double不能转int?

    变量名称也不能相同吧?

    我也是新手