weixin_45950943
YKYB-G
采纳率50%
2020-09-03 10:58 浏览 132

编写程序,它的功能是:应用迭代算法求a的平方根,求a的平方根的迭代公式如下:x1=1/2(x0+a/x0),例如a为2是,平方根值为:1.414214

编写程序如下,为什么只有4、9、16......这样类型的才能出来结果呢?哪里出错了?
#include
#include
main()
{
float a;
float x0,x1;
scanf("%f",&a);
x0=a / 2;
x1=(x0+a/x0)/2;
do
{
x1=x0;
x1=(x0+a/x0)/2;
}
while(fabs(x1 - x0) >= 1e-5);
printf("%.5f",x1);
return 0;
}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答 默认 最新

  • 已采纳
    qq_36911145 封印di恶魔 2020-09-03 14:45

    do里面 x1 = x0 改成 x0 = x1,你这不重新赋值怎么实现功能

    点赞 1 评论 复制链接分享
  • qinqinxiansheng Mr.Qin_ 2020-09-03 11:44

    你将float改为double,并把 1e-5改为1e-3,然后试一下

    点赞 1 评论 复制链接分享

相关推荐