首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一个小疑点,却让小弟我纠结

2012-02-12 
一个小问题,却让我纠结C/C++ code#include Stdio.h#include Conio.h#include math.hmain(){int k1

一个小问题,却让我纠结

C/C++ code
#include "Stdio.h"#include "Conio.h"#include "math.h"main(){int k=1; float m=1,pi=1,i=2; while(fabs(m)>1e-6){k=-k; m=k/(2*i-1); pi=pi+m; i++;}pi=pi*4;printf("pi=%10.6f\n",pi);getch();}

运行结果很正常,是3.141594


但是第二个,很蛋疼啊
C/C++ code
#include "Stdio.h"#include "Conio.h"#include "math.h"main(){int i=2; float m=1,pi=1,k=1; while(fabs(m)>1e-6){k=-k; m=k/(2*i-1); pi=pi+m; i++;}pi=pi*4;printf("pi=%10.6f\n",pi);getch();}

只是i和k对调一下,此程序就显示不出任何结果!
这是为什么啊!求高手解释,最好能运行下,或许是电脑问题!谢谢啦!

[解决办法]
1.优先使用double

2.如果是VC,编译选项里换一种浮点模型试试
[解决办法]
我用楼主的代码没问题,VS2005的环境,编译成C++代码。是不是你自己环境的问题??
[解决办法]
因为你换了不仅仅是两个变量,还改变了类型,int 和float,你看看前后,i和k的数据类型变了,那么精度就会丢失,不如如果你定义int型变量,将一个小数赋给它,它只保留整数部分,误差很大,建议都用浮点型,就不会出错了
[解决办法]
float和int表示的数其范围和精度不同。

热点排行