#include <stdio.h>

double binEq(double left, double right, double eps, double (*f)(double))
{
    double x = left;

    if (left > right)
    {
        double t = left;
        left = right;
        right = t;
    }

    double fl = f(left), fr = f(right);

    if (fl*fr > 0)
    {
        fprintf(stderr,"Wrong range in binEq\n");
        return 0;
    }

    while ( right - left > eps )
    {
        x = (left + right)/2.0;
        if (fl * f(x) < 0)
            right = x;
        else
            left = x;
    }
    return x;
}

double F(double x)
{
    return 11*x - 19;
}


int main()
{
    printf("x = %lf\n",binEq(-100,100,1e-8,F));
}
