どこが可笑しいんだ

#include
#include
#include "bisection.h"
#define MAX_REPEAT 10

//x1,x2が開始と終点、ax~2+bx+c、epsが誤差用
double bisection(double x1, double x2, double a, double b, double c, double eps)
{
double xmid,fmid,f1,f2;
int i = 0;//
for(;;){
xmid = (x1+x2)/2;

f1 = a*x1*x1 + b*x1 + c;
fmid = a*xmid*xmid + b*xmid + c;
f2 = a*x2*x2 + b*x2 + c;

i++;//

if(fmid > 0){x2 = xmid;}
else{x1 = xmid;}

if(fabs(f1) < eps){printf("P");return x1;}
else if(fabs(f2) < eps){printf("Q");return x2;}
else if(fabs(x1-x2) < eps){printf("R");return x1;}
else{;}


}






}