没输出,二分法求大佬解答
查看原帖
没输出,二分法求大佬解答
955141
tndbsfk楼主2023/4/1 13:47
#include <stdio.h>
#include <stdlib.h>

double fc(double a,double b,double c,double d,double x)
{
    return a*x*x*x+b*x*x+c*x+d;
}
int main()
{
    int i,mark=0;
    double mid,x1,x2,t,k,a,b,c,d;
    scanf("%lf%lf%lf%lf",&a,&b,&c,&d);
    for(i=-100; i<=100; i++)
    {
        t=i;
        k=i+1;
        x1=fc(a,b,c,d,t);
        x2=fc(a,b,c,d,k);
        if(x1*x2<=0)
            while(t<=k)
            {
                mid=(t+k)/2.0;
                if(fc(a,b,c,d,mid)>0)
                    k=mid-0.01;
                else if(fc(a,b,c,d,mid)<0)
                    t=mid+0.01;
                else
                {
                    printf("%.2lf ",mid);
                    mark++;
                    break;
                }
            }
            else
                continue;
                if(mark==3)
                    break;
    }

    return 0;
}

2023/4/1 13:47
加载中...