高手帮我看下,哪里出问题了结果不是3.141592?
#include<stdio.h>#include<math.h>
void main()
{
int f=1;
double m=1.0,h=1,z=0,p=0,pi=0;
while(fabs(h)>1e-6)
{
f=-f;
m=m+2;
h=f/m;
z=z+h;
}
pi=4*z;
printf("pi=%ld\n",pi);
}
哪里错了啊 :sweat:你打印的是%ld while里面顺序错了:
h = f/m;
m++++;
f = -f;
z = z + h;
就行了,然后把printf改成%f
#include<stdio.h>
#include<math.h>
void main()
{
int f=1;
double m=1.0,h=1,z=0,p=0,pi=0;
while(fabs(h)>1e-6)
{
h=f/m;
m=m+2;
f=-f;
z=z+h;
}
pi=4*z;
printf("pi=%d\n",pi);
}
还是不行啊? 路过看看= =! %d只能打印整数把,改为%f就可以打印小数 哎···简单的C程序,我也是入门的····
#include<stdio.h>
#include<math.h>
void main()
{
int f=1;
double m=1.0,h=1,z=0,p=0,pi=0;
while(fabs(h)>1e-6)
{
h=f/m;
m=m+2;
f=-f;
z=z+h;
}
pi=4*z;
printf("pi=%f\n",pi);
}
终于搞对了
页:
[1]