C语言 二分法求多项式单根 程序通不过oj的测试

图片说明

以下面的程序运行,oj的4个测试点只能通过两个,程序有什么没考虑到的情况吗?

#include
#include

int a3,a2,a1,a0;

double f(double x) {
double func;
func = a3*pow(x,3.0)+a2*pow(x,2.0)+a1*x+a0;
return func;
}

int main()
{

double a,b,mid;

scanf("%d %d %d %d\n%lf %lf",&a3,&a2,&a1,&a0,&a,&b);

 while (b-a>=0.01) {
    mid =(a+b)/2;
    if (f(mid)==0.0) {  
        goto out;
    } else if (f(mid)*f(a)>0) {
        a=mid;
    } else if (f(mid)*f(b)>0) {
        b=mid;
    }       
} 
mid = (a+b)/2;

out:
printf("%.2f", mid);

return 0;

}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问