c语言:用迭代法求平方根中x0=a/2什么意思
1、x0=a/2; 是不对的。会造成数据出错(1/2会等于0的)。应该改为:x0=(float)a/2;或x0=a/0;下面的 x1=(x0+a/x0)/2;则不需要转。因为a/x0时,因为x0是double,系统会自动将a转为double的。
2、x0=x1是用x0暂存x1在第n-1次迭代时的值,用于后面计算第n次迭代与n-1此迭代的差值,如果差值满足fabs(x0-x1)1e-5,迭代结束。
3、迭代次数越小,a/2是比较好的。我自己发现一个更好的方法。由于任何正数经过无数次开根后都是1,所以可以用1和a来逼近a的根。
用迭代法求平方根,C语言,看下为什么我求出来的是负数。
1、在x1=a/2;之后加一句x2=(x1+a/x1)/2;。把x1=b;改成x1=x2;。把b=x2;删除。把b的声明删除。
2、你x1应该先复制在使用吧,直接使用的话会用默认值计算,默认值是一个负数,你把那条赋值语句挪到scanf下面试试。
3、你的主要原因是变量w没有初始化,是内存中的遗留值,导致最后输出的结果中全部学生的平均值为2000多的一个负数。
c语言迭代法求平方根,x=√a,迭代公式为Xn-1=1/2(Xn+a/Xn),要求…
用迭代法求x=√a求平方根的迭代公式为Xn+1=(1/2)(Xn+a/Xn),要求前后两次求出的x的差的绝对值小于10的负5次幂。
你好,double数据类型是双精度浮点数,在使用scanf读取时需要使用%lf而不是%f。
假如 nx1 那么 重新设置 x1 = 750, x0 还是500 假如nx1, 那么 x1 = 250, x0 =500 所以设 x1 为任何数,你得到的结果都是一样的。假如想知道他们用什么方法算开根号的话。
用迭代法求某数a的平方根。已知求平方根的迭代公式为:x n+1 = (xn + a / xn)/ 2 要求前后两次求出的差的绝对值小于10-5。
迭代次数越小,a/2是比较好的。我自己发现一个更好的方法。由于任何正数经过无数次开根后都是1,所以可以用1和a来逼近a的根。