c语言 用公式计算π

#include<stdio.h>
#include <math.h>
void main()
{
float PI,m,a=1,b;
int n=1;
while(m>1e-5)
{
a=a*(2*n)/(2*n-1)*(2*n)/(2*n+1);
b=a*(2*n+2)/(2*n+1)*(2*n+2)/(2*n+3);
m=2*b-2*a;
n++;
}
PI=2*a;
printf("PI=%lf\n",PI);
getch();
}
谁能告诉我我哪儿错了。。

m没有初始化导致;

#include<stdio.h>
#include <math.h>
void main()
{
 float PI,m=1,a=1,b;//m初始化才有效
 int n=1;
 while(m>1e-5)
{
 a=a*(2*n)/(2*n-1)*(2*n)/(2*n+1);
 b=a*(2*n+2)/(2*n+1)*(2*n+2)/(2*n+3);
 m=2*b-2*a;
 n++;
 }
 PI=2*a;
 printf("PI=%f\n",PI);
 getch();
 }

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-22
有可能是计算圆周率的数学公式错误,请写出数学表达式。
第2个回答  2013-10-22
先把n定义成float型试试,要不总有自动取整的操作

那个计算π的C语言程序是怎么写的啊?
1、PI 的值可以通过以下公式计算出来,π\/4=1-1\/3+1\/5-1\/7……编写循环程序,当这种计算方法所得到的偏差小于0.000001时停止计算,并输出PI的值及所需要计算的项数。2、例程:double s = 0;\/\/面积 double pi = 0;\/\/圆周率 double d=200;\/\/直径(值越大圆周率越精确) double ...

如何用C语言计算π?
pi += sign * (1 \/ i)sign *= -1 pi *= 4 print("π的值为:", pi)解释:首先定义变量pi和sign,分别表示π的值和正负号。然后使用for循环计算公式的前100项,每次加上一个数(或减去一个数),并更新正负号。最后将计算结果乘以4,即可得到π的值。最后使用print语句输出π的值。需要...

C语言编程有公式 可以计算π的近似值。求前后两次迭代结果π 之差的...
int main() { int n = 1;double pi = 2.0 * 2 * 2\/3; \/\/ n=1时pi的初值 double e; \/\/ 精度 scanf("%lf", &e);while (1) { ++n;int m = 2 * n;double pn = pi * m \/ (m - 1) * m \/ (m + 1);if (pn - pi < e) { pi = pn;break;} pi = pn;}...

c语言问题,运用以下公式,用循环累加求和的方法计算π的值
pi; sum = 0; for (i = 1; i <= n; i++) sum += 1.0 \/ i \/ i; pi = sqrt(6.0 * sum); printf("%.6f", pi); return 0;}

c语言 用公式计算π
<math.h>void main(){ float PI,m=1,a=1,b;\/\/m初始化才有效 int n=1; while(m>1e-5){ a=a*(2*n)\/(2*n-1)*(2*n)\/(2*n+1); b=a*(2*n+2)\/(2*n+1)*(2*n+2)\/(2*n+3); m=2*b-2*a; n++; } PI=2*a; printf("PI=%f\\n",PI); getch(); } ...

C语言根据公式求π
表示π的级数较著名的表示π的级数有莱布尼茨级数 π\/4=1-1\/3+1\/5-1\/7+1\/9……以及威廉姆斯无穷乘积式 π\/2=2*2\/3*4\/3*4\/5*6\/5*6\/7*8\/7*8\/9……double sum=2.0,s;while(sum>1e-6)sum*=i\/i+1 } cout<<sum<<endl;...

C语言编程计算出π的值 最好有三种方法!! 急求 好人一生平安啊_百度知 ...
我只说说π是怎么近似计算出来的,大一应该学过高数,可以知道:tan π\/ 4 =1,从而π=4*arctan1,应用泰勒公式将arctan(x)展开,就可以得到 代入x=1得 把这展开式展开,直到最后一项的绝对值小于1e-6为止。下面是C语言递归实现:include<stdio.h> include<math.h> void main(){ float fuc(...

一道C语言的题:编写一个函数,用下列公式计算π(派)的值,知道最后一项的...
double chenfang(int i)\/\/计算符号是1还是-1 { int x=i%2;if(x==0)return 1;return -1;} double computePai()\/\/计算pai值 { double pai=0;for(int i=0;;i++){ double x= (double)1\/(2*i+1);\/\/每项的值 if( x <=10E-6){ return 4*pai ;\/\/满足条件返回pai值 }else...

C语言编程用公式法求π,应该怎么做
在这个公式中有几个关键点:每一项中有一个规律变化数字1,3,5,7,后面应该是9,11...;可以用i=1; i+=2;来表示。每一项中都有规律变化分数相乘1\/2 × 3\/4 ×...这个乘法的截止方法为分母

c语言 计算π的近似值 有公式 π^2\/6=1\/1^2+1\/2^2+...+1\/n^2+...
include <stdio.h> include <math.h> void main(){ double pi,sum=0,n=1;int i=1;while(n>=0.00001){\/\/设置精度 n=1\/(float)(i*i);\/\/计算各项的值 sum+=n; i++;\/\/将各项加起来 } pi=sqrt(6*sum);printf("%f\\n",pi);} ...

相似回答