求助如何优化或者改正程序
#include<stdio.h>
double main(){
double a , b , c , d , x[2] , left = -101 , mid , j , k;
int i = 0;
scanf("%lf%lf%lf%lf", &a , &b , &c , &d);
double fuc(double y){
return a * y * y * y + b * y * y + c * y + d;
}
while(left <= 100){
left = left + 1;
if(fuc(left) == 0 ){
x[i] = left;
i ++;
if(i == 2){
break;
}
continue;
}
if(fuc(left) * fuc(left + 1) > 0){
continue;
}
if(fuc(left) * fuc(left + 1) < 0){
j = left;
k = left + 1;
mid = (2 * j + 1) / 2;
while(k - j >= 0.01){
if(fuc(mid) * fuc(j)>0){
k = mid;
mid = (j + k) / 2;
}
else if(mid == 0){
break;
}
else{
j = mid;
mid = (j + k) / 2;
}
}
x[i] = mid;
i ++;
if(i==2){
break;
}
};
}
printf("%.2lf %.2lf %.2lf",x[0],x[1],x[2]);
return 0;
}