c语言求PI值,使其精度小于0.005,为什么运行不到结果啊,#include #include double fun ( double eps){int i=1,s=1,t=1;double j,sum=1.0;while(j>=eps){t=t*i;s=s*(2*i+1);j=1.0*t/s;sum=sum+j;i++;}return sum*2;}main( ){ double x;void NONO ();p

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/15 11:12:57
c语言求PI值,使其精度小于0.005,为什么运行不到结果啊,#include #include double fun ( double eps){int i=1,s=1,t=1;double j,sum=1.0;while(j>=eps){t=t*i;s=s*(2*i+1);j=1.0*t/s;sum=sum+j;i++;}return sum*2;}main( ){ double x;void NONO ();p

c语言求PI值,使其精度小于0.005,为什么运行不到结果啊,#include #include double fun ( double eps){int i=1,s=1,t=1;double j,sum=1.0;while(j>=eps){t=t*i;s=s*(2*i+1);j=1.0*t/s;sum=sum+j;i++;}return sum*2;}main( ){ double x;void NONO ();p
c语言求PI值,使其精度小于0.005,为什么运行不到结果啊,
#include
#include
double fun ( double eps)
{int i=1,s=1,t=1;
double j,sum=1.0;
while(j>=eps)
{
t=t*i;
s=s*(2*i+1);
j=1.0*t/s;
sum=sum+j;
i++;
}
return sum*2;
}
main( )
{ double x;void NONO ();
printf("Input eps:") ;
scanf("%lf",&x); printf("\neps = %lf,PI=%lf\n",x,fun(x));
NONO();
}
void NONO ()
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件.*/
FILE *fp,*wf ;
int i ;
double x ;
fp = fopen("in.dat","r") ;
wf = fopen("out.dat","w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(fp,"%lf",&x) ;
fprintf(wf,"%lf\n",fun(x)) ;
}
fclose(fp) ;
fclose(wf) ;
}
这是原题

c语言求PI值,使其精度小于0.005,为什么运行不到结果啊,#include #include double fun ( double eps){int i=1,s=1,t=1;double j,sum=1.0;while(j>=eps){t=t*i;s=s*(2*i+1);j=1.0*t/s;sum=sum+j;i++;}return sum*2;}main( ){ double x;void NONO ();p
帮你研究了下 问题有两点
一 、while(j>=eps) 这句话的时候 j没初始化没有被赋值 怎么比啊?
建议改一下:
while(j>=eps)
{
t=t*i;
s=s*(2*i+1);
j=1.0*t/s;
sum=sum+j;
i++;
}
return sum*2;
}
改成 do while
do
{
t=t*i;
s=s*(2*i+1);
j=1.0*t/s;
sum=sum+j;
i++;
}
return sum*2;
}while(j>=eps);
二、本程序当输入的精度 很精时 ,会发生溢出 当然这时候系统不会提示你溢出 而回运行得到错误的结果 即 你说的 不会的3.14..啊好像是3.09..
s=s*(2*i+1); //s 发生溢出了
故修改成:int i=1,s=1,t=1;------》double i=1,s=1,t=1; 这样就不会溢出了 ,随着精度的精确 越来越接近3.1415926
你可以试一下
好的话
请采纳

c语言求PI值,使其精度小于0.005,为什么运行不到结果啊,#include #include double fun ( double eps){int i=1,s=1,t=1;double j,sum=1.0;while(j>=eps){t=t*i;s=s*(2*i+1);j=1.0*t/s;sum=sum+j;i++;}return sum*2;}main( ){ double x;void NONO ();p 怎样用c语言编写求PI的近似值?使用格里高利公式求PI的近似值要求精确到最后一项的绝对值小于10的负4次方? 在C语言中用Π/4≈1-1/3+1/5-1/+.公式求π的近似值,知道某一项的绝对值小于10-6次方为止#include#includevoid main(){int s;float n,t,pi;t=1;pi=0;n=1.0;s=1;while(fabs(t)>1e-6){pi=pi+t;n=n+2;s=-s;t=s/n;}pi=pi*4;printf(pi=%10.6f C语言:圆周率的计算Description根据下面关系式,求圆周率pi的值,直到最后一项的值小于epsilon.epsilon的值由键盘输入.pi/2=1+1/3+2!/(3*5)+3!/(3*5*7)+...+n!/(3*537*...*(2n+1))Input输入一个浮点数表示epsilon的值 要定义一个单精度符号常量PI,其值为3.1416应该使用的语句是? C语言题,1.计算圆周率pi(3.14) 的近似值 2.任意从键盘输入一个字符,输出其ASCII码2.计算 圆周率 pi (3.14) 的近似值 .(直到累加项的绝对值小于 0.0001 )公式 :pi / 4 ≈ 1-1/3+1/5-1/7 .(用while)3.任意 用C语言编程:π*π/6=1/1*1+1/2*2+1/3*3+.+1/n*n,求出π的值要求:(1)以变量 pi表示π,并将其自定义为单精度类型,变量n定义为整型;(2)计算当 n的值分别为20,50,100,200时的π值;(3)输出π值以及 输入精度e 和实数x,用下列公式求cos x 的近似值,精确到最后一项的绝对值小于e.c语言编程,输入精度e 和实数x,用下列公式求cos x 的近似值,精确到最后一项的绝对值小于e。要求定义和调用 C语言 输入精度e 和实数x,用下列公式求cos x 的近似值,精确到最后一项的绝对值小于e。输入精度e 和实数x,用下列公式求cos x 的近似值,精确到最后一项的绝对值小于e。要求定义和调用 C语言float PI = acos(-1. 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 C语言循环程序大题1、编程按下列的级数求COS(X)的值并输出:COS(X)=1-X2/2!+X4/4!-X6/6!+.要求:x的值由键盘输入(代表弧度),运算精度保持到最后一项的绝对值小于10的负6次为止.2、编写程序求一 用C语言求:π/4=1-1/3+1/5-…求π的近似值,直到最后一位的绝对值小于10^(-6),以下程序哪错了#include main(){float i,pi,j=1,t=0;for(i=1;(1/i)>=(10^(-6));i=i+2){ t=t+j*(1/i);j=j*(-1);}pi=t*4;printf(pi=%f ,pi);} Mathematica中用N[Pi,n]算π的近似值,为什么n小于等于16时只能得到6位精度,17或以上位数就精确呢?然后怎么得到一个值的10位精度近似值呢? C语言中,双精度(double)型其数值范围为1.7E-308~1.7E+308, 求救C语言高手,用以下四个公式分别写出求pi的程序公式 编写函数fun,其功能是:根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代)请编写函数fun,其功能是根据以下公式求π的值(要求满足精度0.0005,即某项小于0.0005时停止迭代).π/2= 编写函数fun,其功能是:根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代).请编写函数fun,其功能是根据以下公式求π的值(要求满足精度0.0005,即某项小于0.0005时停止迭代).π/2