计算圆周率的算法算法公式是 PI=4*(1-1/3+1/5-1/7+1/9-.)请看下面这个程序#include #include main() {float n,pi,t; int k=1;pi=0,t=1,n=1; while(fabs(t)>1e-6) {t=k/(2*n-1);pi=pi+t; k=-k; n++; } pi=4*pi; printf("%f",pi); } 为什么要把

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/23 17:40:20
计算圆周率的算法算法公式是PI=4*(1-1/3+1/5-1/7+1/9-.)请看下面这个程序#include#includemain(){floatn,pi,t;intk=1;pi=0,t=1,n=

计算圆周率的算法算法公式是 PI=4*(1-1/3+1/5-1/7+1/9-.)请看下面这个程序#include #include main() {float n,pi,t; int k=1;pi=0,t=1,n=1; while(fabs(t)>1e-6) {t=k/(2*n-1);pi=pi+t; k=-k; n++; } pi=4*pi; printf("%f",pi); } 为什么要把
计算圆周率的算法
算法公式是 PI=4*(1-1/3+1/5-1/7+1/9-.)
请看下面这个程序
#include
#include
main()
{float n,pi,t;
int k=1;
pi=0,t=1,n=1;
while(fabs(t)>1e-6)
{
t=k/(2*n-1);
pi=pi+t;
k=-k;
n++;
}
pi=4*pi;
printf("%f",pi);
}
为什么要把t的初值定为1呢,
定为0的话在循环体里第一步不也能算出来吗,
为什么定为0之后程序输出的结果就不对了呢

计算圆周率的算法算法公式是 PI=4*(1-1/3+1/5-1/7+1/9-.)请看下面这个程序#include #include main() {float n,pi,t; int k=1;pi=0,t=1,n=1; while(fabs(t)>1e-6) {t=k/(2*n-1);pi=pi+t; k=-k; n++; } pi=4*pi; printf("%f",pi); } 为什么要把
因为循环条件是while(fabs(t)>1e-6)
你把t定为0了 这第一步就不符合 所以就不循环了
输出肯定是0了

#include
#include
main()
{float n,pi,t;
int k=1;
pi=0,t=1,n=1;
while(fabs(t)>1e-6)
{
t=k/(2*n-1);
pi=pi+t;
k=-k;
n++;
}
pi=4*pi;
printf("%f",pi);
}