作业帮 > 综合 > 作业

编写函数fun,其功能是:根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代).

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/10/03 08:39:28
编写函数fun,其功能是:根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代).
请编写函数fun,其功能是根据以下公式求π的值(要求满足精度0.0005,即某项小于0.0005时停止迭代).
π/2=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+……+(1*2*3*4*……*n)/(3*5*7*……*(2n+1))
程序运行后,若输入精度为0.0005,则输出为3.1416
double fun(double eps)
{
\x05double p=1,n=1,t,sum=1;
\x05int i=1;
\x05do
\x05{
\x05\x05p=p*i;
\x05\x05n=n*(2*i+1);
\x05\x05t=p/i;
\x05\x05sum=sum+t;
\x05\x05i++;
\x05}while(t>=eps);
\x05return 2*sum;
}
哪里错了?
你把t=p/i;改成t=p/n;代码逻辑就没有问题了.关键是esp值太大,达不到精度要求,改成0.00000005试试.另未见你的main,是不是其中还有错不得而知.
再问: eps取0.0005还大么??main函数不会出错的,因为这是二级考试的程序题,就要去写fun函数,main函数题里自带的。
再答: 看来还是个比较固执的主,自己看吧……
再问: 真厉害。谢谢。