Dev c++的一道简单编程

来源:百度知道 编辑:UC知道 时间:2024/09/19 15:38:02
用下列公式求pi的近似值。π/4≈1-1/3+1/5-1/7+…直到最后一项的绝对值小于10-7为止。
程序如下:
#include <iostream.h>
#include <math.h>
using namespace std;
int main()
{
int i;
double r,sum=0;
for(i=1;;i++)
{
r=1/(i*2-1);
if((i+1)%2!=0) r=-r;
sum=sum+r;
if(fabs(r)<10e-7) break;
}
sum=sum*4;
printf("pi=%f",sum);
system("pause");
return 0;
}
输出总为4.000000,请高人指点,多谢!

r=1/(i*2-1);
这句改为
r=1.0/(i*2-1);
因为原句为int除int,结果为int,小数舍去。
修改后
double除int,结果为 double。
将i改为double也可以。

这是我修改过的的程序:

#include <iostream.h>
#include <math.h>
using namespace std;
int main()
{
int i;
double r,sum=0;
for(i=1;;i++)
{
r=1.0/(i*2-1); /*注意,整形 除以 浮点型 = 整形
比如, 0.25 / 5 = 0.000000 */
if((i+1)%2!=0) r=-r;
sum=sum+r;
if(fabs(r)<10e-7) break;
}
sum=sum*4.0; /*注意,浮点型 乘以 整形 = 整形
比如, 0.25 * 5 = 1.000000 */
printf("pi=%f",sum);
system("pause");
return 0;
}
本代码以通多Dev-C++5.0质量体系认证,请楼主采纳。
版权所有,请勿抄袭!
PS:上面2位就这么不负责人吗?

#include <iostream.h>
#include <math.h>
using namespace std;
int main()
{
//cout<<10e-7;
double i;
double r,sum=0;
for(i=1.0;;i++)
{
r=1/(i*2-1);
if(int(i+1)%2!=