一个很神奇的跟输出有关的问题

来源:百度知道 编辑:UC知道 时间:2024/05/21 01:31:50
请看下面这段代码:
float c;
cin>>c
float d=c*100;
cout<<d<<endl; //注意这一句
int k=d;
cout<<d<<" "<<k<<endl;
当我把有注释的那一行去掉的时候,输入0.02,会输出k=1,有了那一句,k=2...大家都可以试试看...

我是彻底糊涂了....
之前我还想说是不是跟类型转换有关...可以看到这个问题之前的第六个问题也是我提的

=====================
对哦...初始化了就可以了,可是为什么呢?用d给它赋值不也是初始化么?

这个跟编译器有关系,vc的编译器确实有bug。

你用c++ builder 就不会有你说的问题,我亲自调试过的,不信你可以自己验证下,

我知道vc有这样的bug
例如:
for(int i=0;i<2;i++)
{
}
for(int i=0;i<3;i++)
{
}
他会认为i是重复定义而报错。

还真是! 这怎么会是?
=====================================
如果吧K初始化为0就不是这样了

的确很神奇呀!!