两个代码运行出来的答案不一样
#include<stdio.h>
#include<math.h>
void main()
{
int it;
double fm,fn,fpi;
fpi=0;fm=1;fn=1;it=1;
while(fabs(fn)>=1e-6)
{
fpi=fpi+fn;
fm=fm+2;
it=-it;
fn=it/fm;
}
fpi=fpi*4;
printf("%12.7lf",fpi);
}
这是老师给的
#include<stdio.h>
#include<math.h>
int main()
{
int fm=1,flag=-1;
double sum=1,item=1;
while(fabs(item)>=1e-6)
{
fm=fm+2;
item=flag*1.0/fm;
sum=sum+item;
flag=-flag;
}
sum=sum*4;
printf("%12.7lf",sum);
}
这是我自己写的
请大神帮忙看一下,哪里不妥
你的程序和老师的程序都没有错,但是浮点数存在误差,不同的运算顺序会导致精度差异,所以结果有不同很正常。