//牛顿迭代法求根
#include <stdio.h>
#include <math.h>
float root(float i,float a,float b,float c,float d)
{
float x,x0,f1,f2;
x=i;
do
{
x0=x;
f1=x*(x*(a*x+b)+c)+d;
f2=x*(3*a*x+2*b)+c;
x=x0-f1/f2;
}while(fabs(x-x0)>1.e-6);
return x;
}
main()
{
float a,b,c,d;
a=1,b=2,c=3,d=4;
printf("根是%f",root(1,1,2,3,4));
}