求救!c语言求π的程序

来源:百度知道 编辑:UC知道 时间:2024/05/29 22:44:37
我写的是:
#include<math.h>
main()
{
long int fenzi=1,fenmu=-1;
long double he,sum,pi,aa,bb=0.0;
while(fenmu<=100)
{
fenzi=-1*fenzi;
he=fenzi/fenmu;
fenzi=-1*fenzi;
fenmu=fenmu+2;
sum=fenzi/fenmu;
aa=he+sum;
bb=bb+aa;
fenmu=fenmu+2;
}
pi=bb*4;
printf("%lf",pi);
getch();
}

可是输出是0.000000?
怎么办额,请帮我改改,要写出哪里错了,改成什么样额~~

我用的公式是:π/4=1-1/3+1/5……这个
那要怎么修改呢?

#include<math.h>
#include<stdio.h>
void main()
{
double fenzi=1,fenmu=1;
double sum=0,pi;
while(fenmu<=100)
{
sum=sum+fenzi/fenmu;
fenzi=-1*fenzi;
fenmu=fenmu+2;
}
pi=sum*4;
printf("%f",pi);

}

循环错了吧!

分子和分母也应该用double型
因为整数相除得整数
1/3 = 0
3/2 = 1

void main() {
double fenzi, fenmu, sum, pi;

sum = 0.0;
fenzi = 1.0;
for ( fenmu = 1.0; fenmu <= 100000.0; fenmu += 2.0 ) {
sum += fenzi / fenmu;
/* printf( "%+.0f/%0.f", fenzi, fenmu );*/
fenzi = ( fenzi < 0 )? 1.0 : -1.0;
}
pi = sum * 4.0;
printf( "%lf\n", pi );
}

sun+=fenzi/fenmu;