用π/4≈1-/3+1/5-1/7+...公式 求π的近似值,直到某一项的绝对值小于 为止

#include <stdio.h>
#include <math.h>
void main()
{
int s; double n,t,pi;
t=1;pi=0;n=1.0;s=1;
while(fabs(t)>1e-6)
{
pi=pi+t;n=n+2;s=-s;t=s/n;/*这里看不懂
}
pi=pi*4;
printf("pi=%10.6f\n",pi);
}
/*NO.1 用π/4≈1-/3+1/5-1/7+...公式
求π的近似值,直到某一项的绝对值小于
为止*******************************/
那他们是按什么顺序运算的啊 谢谢

s=-s是为了使1和-1交错出现
t=s/n是得到1,-1/3,1/5,-1/7,……
n=n+2就是保证坟墓每次增加2
然后pi=pi+t就是求和

最后说一句这个式子是等式,就用等号就行了,不必用约等号
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-08-07
pi=pi+t PI累加 需要说明这里的pi是π/4而下面的pi是π
n=n+2 每叠加一次分母增2
s=-s 是正负交替
t=s/n 产生数列 1,-1/3,1/5,-1/7。。。

fabs(t)>1e-6 控制精度,也是循环次数控制
第2个回答  2012-08-07
buzhidao

用π\/4≈1-\/3+1\/5-1\/7+...公式 求π的近似值,直到某一项的绝对值小于...
s=-s是为了使1和-1交错出现 t=s\/n是得到1,-1\/3,1\/5,-1\/7,……n=n+2就是保证坟墓每次增加2 然后pi=pi+t就是求和 最后说一句这个式子是等式,就用等号就行了,不必用约等号

...1\/7+...公式求π的近似值,直到某一项的绝对值小于10的-6次方_百度...
显然不行!除第一项外其余1\/d永远是0,因为d是int型。\/这个操作符在两边都是整数时只取商的整数部分……

...1\/7+...公式求π的近似值,直到某一项的绝对值小于1e-6
i=1,PI=0.0;fabs(a=1.0\/i)>=1e-6;i+=2,i*=-1 这个语句是有问题的,你得到的并不是 1-1\/3+1\/5-1\/7+... 这个序列,建议你自己写开看看。另外,可以参考我给你改的程序:include <stdio.h> include <math.h> int main (){ double PI,a;int i,j;for(i=1,j=1,PI=0....

...公式求π的近似值,直到某一项的绝对值小于1e-6为止
用For语句没有问题。但应该把 pi=pi+t 放到后面,应为执行完for下面的大括号才执行 这句 n=n+2 严格按照你列出来的等式,每执行一次for循环体进行一次算术运算,改成下面这样就可以了 include <stdio.h> include <math.h> int main(){ int s;double t,n,pi;s=-1,t=1,n=1.0,pi=0;...

...公式求π的近似值, 直到某一项的绝对值小于1.0e-4为止...
include <iostream>#include <cmath>using namespace std;int main(){double s=1,u=0,e=1;int n=1;while(e>=1.0E-4){n++;if(n%2==0){u=-1\/(2.0*n-1);\/\/改成了2.0}else{ u=1\/(2.0*n-1);\/\/改成了2.0}s=s+u;e=fabs(u);}cout<<"π的近似值为"<<s*4...

用公式π\/4≈1-1\/3+1\/5-1\/7+ ...求π的近似值,直到最后一项的绝对值小...
b=i\/(2*i-1);---> b=1\/(2*i-1);看到了,这地方

...中用Π\/4≈1-1\/3+1\/5-1\/+...公式求π的近似值,知道某一项的绝对值...
首先,while循环,条件是某一项,也就是t的绝对值小于10的-6次方,fabs是求绝对值的函数。pi初始化为0,然后在循环里,就按照公式,首先先把t的第一次的值加上,也就是1,然后把t进行处理,用n来表示分母,s代表每项的符号,然后把t值改变为下一项,像第一次循环中,最后t就会变成1\/3,然后把...

用π\/4≈1-1\/3+1\/5-1\/7+...公式求π的近似值,直到最后一项绝对值小于...
include<stdio.h>#include<math.h>void main(){int s;double n,t,pi;s=1;n=1.0;t=1;pi=0;while (fabs(t)>4*1e-6){pi=pi+t;n=n+2;s=-s;t=s\/n;}pi=pi*4;printf("pi=%10.6f\\n",pi);}你应该问的是C语言编程题吧(π是用pi代替的),最终答案为3.141585 ...

编程题:用π\/4≈1-1\/3+1\/5-1\/7+……公式求π的近似值,直到最后一项绝对...
Private Sub Command1_Click()Dim sign As Integer, a As Long, pi As DoubleDim i As Integersign = -1i = 1Do a = 2 * i - 1 sign = -1 * sign pi = pi + (1 \/ a) * sign i = i + 1Loop While Abs((1 \/ a) * sign) > 0.0001pi = pi * 4Print...

...1\/7+...公式求π的近似值,直到某一项的绝对值小于10?
明显错误有三:for循环中不能嵌套if语句,所以for循环那一句错误。a=b\/c;这一句第一次进入循环时还没有赋值,属于使用垃圾值,错。for中的fabs(a)<1e-6表达式逻辑错,应该是fabs(a)>1e-6才对。重写如下——

相似回答