下列给定程序中,函数proc()的功能是:应用递归算法求某数a的平方根。求平方根的迭代公式如下: x1=(x0+a/x0)/2 例如,3的平方根为1.732051。 请修改程序中的错误,使它能得出正确的结果。 注意:不要改动main()函数,不得增

admin2013-03-25  42

问题 下列给定程序中,函数proc()的功能是:应用递归算法求某数a的平方根。求平方根的迭代公式如下:
    x1=(x0+a/x0)/2
例如,3的平方根为1.732051。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
//****found****
proe(double a.double x0)
{
  double x1,y;
  x1=(x0+a/x0)/2.0;
  //****found****
  if(fabs(x1-x0)>0.00001)
  y=proc(a,x1);
  else y=x1;
  return y;
}
void main()
{
  double s;
  printf("Enter s:");scanf("%If",&s);
  printf("The square root of%1f is %1f\n", s,proc(s,1.0));
}

选项

答案(1)错误:proc(double a,double x0) 正确:double proc(double a,double x0) (2)错误:if(fabs(x1—x0)>0.00001) 正确:if(1abs(x1—x0)>=0.00001)

解析 由主函数中的proc函数调用可知,函数proc应该有一个double型的返回值。因此,“proc(double a,double x0)”应改为“double proc(double a,double x0)”;由double型数据的精确值可知,“if(fabs(x1—x0)>0.00001)”应改为“if(1abs(x1—x0)>=0.00001)”。
转载请注明原文地址:https://jikaoti.com/ti/zKn0FFFM
0

最新回复(0)