题目
解决代码及点评
该题考察对浮点数的了解
#include<iostream> #include<cmath> /* 用牛顿迭代法求方程在 1.5附近的根(精度在10^-5) 2*x^3-4*x^2+3*x-6=0 */ using namespace std; void main() { double diedai(double a,double b,double c,double d,double x); double a,b,c,d; double x=10000.0; cout<<"请依次输入方程四个系数:"; cin>>a>>b>>c>>d; x=diedai(a,b,c,d,x); // 用户输入四个系数后,调用迭代法就根 cout<<x<<endl; //printf("%f",x); system("pause"); } double diedai(double a,double b,double c,double d,double x) { while(abs(a*x*x*x+b*x*x+c*x+d)>0.000001) // 关键在于,对方程的求值,最后是>0.000001而不是==0是因为浮点数不能==0,所以用精度代替 { x=x-(a*x*x*x+b*x*x+c*x+d)/(3*a*x*x+2*b*x+c); } return x; }
代码下载及其运行
代码下载链接:
http://download.csdn.net/detail/yincheng01/6641033
解压密码为c.itcast.cn
下载解压后用VS2013打开工程文件
点击 “本地Windows调试器” 执行
程序运行结果