#include <iostream>
using namespace std;
void main()
{
float a,b,e,result;
float divice(float (*f)(float),float a,float b,float e);
float f(float x);
cout<<"输入区间端点:";
cin>>a>>b;
cout<<"输入精度:";
cin>>e;
result=divice(f,a,b,e);
cout<<"运行结果:"<<result<<endl;
}
float divice(float (*f)(float),float a,float b,float e)
{
if(f(a)*f(b)>0)
return -1;
else
while(b-a>=e)
{
if(f((a+b)/2)==0)
return (a+b)/2;
else if(f((a+b)/2)*f(a)>0)
a=(a+b)/2;
else b=(a+b)/2;
}
return (a+b)/2;
}
float f(float x)
{
return x*x-3*x+2;
}