作业帮 > 综合 > 作业

C语言中求pi值,语句顺序不同,结果不同,哪位大虾能给我解释下程序是怎么个运行过程

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/09 03:30:49
C语言中求pi值,语句顺序不同,结果不同,哪位大虾能给我解释下程序是怎么个运行过程
#include /*第一种*/
main()
{
double s,n,t,pi;
s=1;n=1;pi=0;t=1;
while(fabs(t)>1e-6)
{pi=pi+t;
s=-s;
n=n+2;
t=s/n; /*此语句在最后*/
}
pi=4*pi;
printf("%f",pi);
}
#include /*第二种*/
main()
{
double s,n,t,pi;
s=1;n=1;pi=0;t=1;
while(fabs(t)>1e-6)
{pi=pi+t;
t=s/n; /*此语句在前*/
s=-s;
n=n+2;
}
pi=4*pi;
printf("%f",pi);
}
两种顺序关键不同在于while循环里面
第一种while循环内变量前3次变化为
循环次数 pi s n t
循环前 0 1 1 1
1 1 -1 3 -1/3
2 2/3 1 5 1/5
3 13/15 -1 7 1/7
第二种while循环内变量前3次变化为
循环次数 pi t s n
循环前 0 1 1 1
1 1 1 -1 3
2 2 -1/3 1 5
3 5/3 1/5 -1 7
两次各变量的更新顺序依次是我写的顺序从左到右,从这3次就可以看出区别,所以答案当然不同