郑州逸泉酒店跑路:求解一道C++的问题 小弟初学c++

来源:百度文库 编辑:高考问答 时间:2024/04/30 13:37:49
利用下面的公式编程计算x的值
x/4=1- 1/3 + 1/5 - 1/7 +...+ 1/4n-3 - 1/4n-1
(n=2000)
原公式中是 1/(4n-3) - 1/(4n-1)

源程序如下:
#include<iostream.h>
void main()
{
int i;
double x;
for(i=1;i<=2000;i++) x+=1/(4*i-3)-1/(4*i-1);
cout<<"x="<<x*4<<endl;
}

这是一个计算pi近似值的公式,运行结果如下:
x=3.14134

程序源码如下:
#include <stdio.h>
#include <stdlib.h>

int main()
{
int n = 2000, i;
float x = 0;
for (i = 1; i <= n; i++)
{
x += 1.0/(4*i-3);
x -= 1.0/(4*i-1);
}
x *= 4;
printf("x=%g\n", x);
return 0;
}

嗯,第一个是C风格的编程~第二个是新标准的C++,推荐~第三个……兄弟:

⒈ 要么用<instream.h>,要么using namespace std;
⒉ 变量y使用前没有经过初始化~(内存中有大量稀缺的0,运行了一次真没看出来~)~
⒊ 1/(4n-3)- 1/(4n-1)~其中的“n”是?~不是用的i么?~
⒋ 整数除法,除了第一项得结果一全返回零~
⒌ 这么多bug,不知你怎样得出正确结果~(汗~)~

另:最后一项(n=2000时)值为3e-8,感觉最好用double,更精确一些~我的结果:3.141343~

祝快乐及顺利~

x=3.14137
在VC++下编译通过
#include<iostream>
using namespace std;
int main()
{
int n = 2000, i;
float x = 0;
for (i = 1; i <= n; i++)
{
x += 1.0/(4*i-3);
x -= 1.0/(4*i-1);
}
x*= 4;
cout<<x<<endl;
return 0;
}

兄弟你好撒
#include<iostream>
void main()
{
int i;
double y,x;
for(i=1;i<=2000;i++)
{
y+=1/(4n-3)- 1/(4n-1);
}
x=y*4;
cout<<"x="<<x;
}

麻烦你试试就知道了.呵呵!
x=3.14134

第二个回答好,第三个在新的编译器上过不去,第一个不是c++风格的程序