问题遇到的现象和发生背景
为什么low和high换个位置就错误?
问题相关代码,请勿粘贴截图
while(high-low>0){
if(high-low<0.001){
printf("%.2lf",(high+low)/2);
break;
}
if(cal(low,a3,a2,a1,a0)*cal(high,a3,a2,a1,a0)<0){
mid = (high+low)/2;
}
if(cal(mid,a3,a2,a1,a0)==0){
printf("%.2lf",mid);
break;
}
if(cal(low,a3,a2,a1,a0)*cal(mid,a3,a2,a1,a0)>0){
low = mid;
}else{
high = mid;
}
}
return 0;