C++问题 什么是迭代法

来源:百度知道 编辑:UC知道 时间:2024/05/31 17:49:22
请各位高人回答一下我的问题,本人万分感谢!

程序:
#include<iostream.h>
#include<iomanip.h>
#include<math.h>
void main(void)
{ double x0,x1,a;
cout<<“输入一个正数:”;
cin>>a;
while(a<0)
{ cout<<a<<“不能开方!\n请重新输入一个正数:”;
cin>>a;
}
x1=a/2;
do{
x0=x1;
x1=(x0+a/x0)/2;
}while(fabs(x1-x0)>1e-8);
cout<<a<<“的平方根等于:”<<setiosflags(ios::fixed)
<<setprecision(8)<<x1<<'\n';
}

书中说:
输入一个正数:3
3的平方根等于:1.73205081

//////////////////////////////////////////////
但我对上面这个程序的理解是 3的平方根等于:1.75

还有一点请各位高人指教一下,
setiosflags(ios::fixed) 和 setprecision(8)
是什么意思

谢谢

setiosflags(ios::fixed) 和 setprecision(8)
是保留8位小数

这个程序用的是牛顿迭代法求平方根,你看这里就都会了:
http://www.matrix67.com/blog/article.asp?id=410