| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 340 人关注过本帖
标题:请帮解决一个小问题。
只看楼主 加入收藏
zjl01223
Rank: 2
等 级:论坛游民
帖 子:42
专家分:90
注 册:2011-4-21
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:1 
请帮解决一个小问题。
用迭代法求x="开平方a",求平方根的迭代公式为: X(n+1)= 1/2(Xn+a/Xn)
代码为:
程序代码:
#include<stdio.h>
#include<math.h>
void main()
{
    float x0,x1,a;
    printf("请输入a:");
    scanf("%f",&a);
    if(a>=0)
    {
        x1=sqrt(a);     //为何用x1=a/2也可以//
        x0=x1;
        x1=(x0+a/x0)/2;
        fabs(x0-x1)>=1e-5;    //*前后两次x的差的绝对值小于0.00001*//
        printf("a的平方根为:%.3f\n",x1);
    }
    else
        printf("error\n");
}
还有这个警告怎么改:warning C4552: '>=' : operator has no effect; expected operator with side-effect

搜索更多相关主题的帖子: 平方根 
2011-05-26 00:53
Toomj
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:257
专家分:1826
注 册:2011-5-17
收藏
得分:10 
   x1=a/2;
   do
   {   x0=x1;
     x1=(x0+a/x0)/2;
    } while(fabs(x0-x1)>1e-5);
楼主,这才是迭代法开平方····
你那个x1=sqrt(a),都调函数求出来了还迭代啥
2011-05-26 08:42
快速回复:请帮解决一个小问题。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014838 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved