仅供参考
#include <stdio.h>
#include <math.h>
double calcF(double num,double a[]);
int main()
{
double thred = 0.001;
double a[4];
double A,B;
double fA,fB;
double temp;
scanf("%lf%lf%lf%lf",&a[3],&a[2],&a[1],&a[0]);
scanf("%lf%lf",&A,&B);
while((B-A) > thred) //注意条件的判断
{
fA = calcF(A,a);
fB = calcF(B,a);
if(calcF((A+B)/2,a)/2 == 0) break;
temp = calcF((A+B)/2,a);
if(temp*fA > 0) A = (A+B)/2;
else B = (A+B)/2;
}
printf("%.2lf\n",(A+B)/2);
return 0;
}
double calcF(double num,double a[])
{
double res=0;
for(int i=3;i>=0;i--)
{
res += (a[i]*pow(num,i));
}
return res;
}