#include <stdio.h>
#include <math.h>
float f(float x)
{float f;
f=sin(x);
/* f=x*x-4; */
return f;
}
void main()
{int i,k;
float h,a,b,x,y,m,n,v,e;
printf("\n请输入根的下界a:");
scanf("%f",&a);
printf("\n请输入根的上界b:");
scanf("%f",&b);
printf("\n请输入根步长 h:");
scanf("%f",&h);
printf("\n请输入精确度 e:");
scanf("%f",&e);
m=a;
v=f(a);
for(;m<b;)
{
do
{if (h==0) {n=b;m=b;break;}
m=m+h;
n=m;
if (m>b)
{ m=b;
n=m;
if (f(a)*f(m)>0) break;
}
}
while (f(a)*f(m)>0);
for(;n-a>e;)
{if (f(a)==0 || f(m)==0) {m=m+h;x=0;break;}
x=(a+n)/2.0;
y=f(x);
if (y*v>0)
{a=x;
v=y;
}
else n=x;
}
printf("x=%f\n",x);
/*if (m==0) m=m+h;*/
a=m;
v=f(a);
}
scanf("%f",&a);
}