为什么我的这个程序使用二分法输出的居然是无根,求解!!!!!!!
#include<stdio.h>#include<math.h>
float f(float);
void main()
{
float a,b,fa,fb,t,ft,accuracy,y;
printf("请输入函数的区间及精确度:");
scanf("%f%f%f",&a,&b,&accuracy);
fa=f(a);
fb=f(b);
if(fa*fb<0)
while(1)
{
fa=f(a);
fb=f(b);
t=(a+b)/2;
ft=f(t);
if(fa*ft<0)
b=t;
else if(fb*ft<0)
a=t;
y=fabs(a-b);
if (y<accuracy)
{
printf("\n根为:%f\n",t);
break;
}
}
else
printf("无根\n");
}
float f(float x)
{
return x-1/2.0-sin(x);
}
区间是[0,1],精确度0.00001