各位看看我哪里错了 二分法求零点
#include<stdio.h>#include<math.h>
#include <stdlib.h>
int main()
{
float f(float x);
float a,b,c,jqd;
float abs(float x);
printf("请输入区间,精确度\n");
scanf("[%f,%f],%f",&a,&b,&jqd);
if(f(a)*f(b)>0) printf("该区间无零点\n");
else
{
if(f(a)*f(b)==0)
{
if(f(a)==0)printf("零点为%f\n",a);
else printf("零点为%f\n",b);
}
else
{
if(abs(a-b)<=jqd)printf("零点是%f\n",a);
else
{
while(abs(a-b)>jqd)
{
c=(a+b)*2;
if(f(c)==0) a=c;
else
{
if(f(a)*f(c)<0) b=c;
else a=c;
}
}
}
}
}
printf("零点是%f",a);
system("pause");
return 0;
}
float f(float x)
{
float y;
y=x*x;
return(y);
}
float abs(float x)
{
return (x>0 ? x : -1*x);
}