当前位置: 代码迷 >> C语言 >> 问个小问题
  详细解决方案

问个小问题

热度:103   发布时间:2008-01-12 17:37:35.0
问个小问题
main()
{
float a=1;
a+=a++;
printf("%f\n",a);
getch();
}
结果是:2.000000
main()
{
int a=1;
a+=a++;
printf("%d\n",a);
getch();
}
结果是:3
这是为什么啊
刚学 不懂的很多 望不吝赐教
搜索更多相关的解决方案: main  getch  printf  float  结果  

----------------解决方案--------------------------------------------------------
不知道你的编译系统是什么
我的结果是
3.000000

3
----------------解决方案--------------------------------------------------------
我的也是2。000000和3
用的是WIN-TC2。0
----------------解决方案--------------------------------------------------------
研究这个没意义。
未定义行为。
----------------解决方案--------------------------------------------------------
我用的VC++   
结果是3和3.00000
----------------解决方案--------------------------------------------------------
编译器得问题.
----------------解决方案--------------------------------------------------------
对浮点数最好别用 ++
----------------解决方案--------------------------------------------------------
楼上的为什么啊?难道是a++=a+1;算的次数多了,由于精度问题会随着计算次数影响计算结果?
----------------解决方案--------------------------------------------------------
应是WIN TC 2.0 的问题
我用 英文原版 2.0 3.0 完全正常
原我用过一段 win tc 2  win to 3 有些小误差
----------------解决方案--------------------------------------------------------
我用的编译器是 gcc version 4.1.2
结果是:3.000000
             3
我猜楼主用的一定是TC了.
----------------解决方案--------------------------------------------------------
  相关解决方案