给定程序MODll.C中函数fun的功能是:根据以下公式求π值,并作为函数值返回。 例如,给指定精度的变量eps输入0.0005时,应当输出Pi=3.141480。 π/2=1+1/3+1/3×2/5+1/3×2/5×3/7+1/3×2/5

admin2013-03-29  23

问题 给定程序MODll.C中函数fun的功能是:根据以下公式求π值,并作为函数值返回。
    例如,给指定精度的变量eps输入0.0005时,应当输出Pi=3.141480。
    π/2=1+1/3+1/3×2/5+1/3×2/5×3/7+1/3×2/5×3/7×4/9…
    请改正程序中的错误,使它能得出正确结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include
#include
double fun(double eps)
{ double s,t;int n=l;
  s=0.0;
/************found************/
  t=0;
  while(t>eps)
  {  s+=t;
    t=t*n/(2*n+1);
    n++;
    }
/************found**********/
    return(s);
}
main()
{ double x;
  printf("\nPlease enter a
precision:");scanf("%lf",&x);
  printf("\neps=%lf,
Pi=%lf\n\n",x,fun(x)),
}

选项

答案(1)t=1; (2)return(2*s);

解析 (1)根据题目中的公式,应该从1开始加。如果t起始为0,结果就少加一个1。又由于t定义为浮点数,所以,第一个错误标识下应该将“t=0;"改为“t=1;"。
    (2)根据公式计算出来的s是π/2,因此π=2*s,故第二标识下应改成“return(2*s):"。
转载请注明原文地址:https://kaotiyun.com/show/OWJp777K
0

最新回复(0)