为了账号安全,请及时绑定邮箱和手机立即绑定

求助 为什么我强制转换类型 加了(float)后一直显示无法输出 去掉以后 一切正常

#include <stdio.h>

int main()

{

    int number=200;

    int year=2014;

    do{

      year++;     

     (float) number *=1.2;                   

    }while(number<1000);    

    printf("到%d年招工规模突破1000人\n", year);

    return 0;

}



正在回答

2 回答

(float) number *=1.2; 这个不就成了(float)number=(float)number*1.2

1 回复 有任何疑惑可以回复我~
#1

慕容6195441 提问者

对啊 我担心的就是 number乘1.2几次后不是就有小数 int不是只有整数部分吗 那不就不准确了?
2016-11-13 回复 有任何疑惑可以回复我~
#2

思心等待的人 回复 慕容6195441 提问者

那么就应该是这样写number=(float)number*1.2;
2016-11-13 回复 有任何疑惑可以回复我~
#3

思心等待的人 回复 慕容6195441 提问者

而且number=200是不会出现那种情况的,要么你就把int number改成float或者double number
2016-11-13 回复 有任何疑惑可以回复我~
#4

慕容6195441 提问者 回复 思心等待的人

num=200再乘过四五次之后就有小数了 我刚才试了你那样改可以 但是我那样是错在哪了 可以说一下吗 谢谢
2016-11-13 回复 有任何疑惑可以回复我~
#5

思心等待的人 回复 慕容6195441 提问者

(float) number *=1.2; 临时改动了被赋值的number的定义,这说不通啊
2016-11-13 回复 有任何疑惑可以回复我~
#6

慕容6195441 提问者

非常感谢!
2016-11-13 回复 有任何疑惑可以回复我~
查看3条回复

#include <stdio.h>

int main()

{

    int number=200;

    int year=2014;

    do{

      year++;

   number=(float)number*1.2;

    }while(number<1000);

    printf("到%d年招工规模突破1000人\n", year);

    return 0;

}


1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926257    人
  • 解答问题       20798    个

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

进入课程

求助 为什么我强制转换类型 加了(float)后一直显示无法输出 去掉以后 一切正常

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信