我按照书上写的,但是50分
#include<bits/stdc++.h>
using namespace std;
#define eps 1e-4
typedef double D;
D a,b,c,d;
D f(D x){
return x*x*x*a+x*x*b+x*c+d;
}
int main(){
cin>>a>>b>>c>>d;
for(int i=-100;i<=100;i++){
D l=i,r=i+1,mid;
if(fabs(f(l))<eps)printf("%.2lf ",l);
else if(fabs(f(r))<eps)continue;
else if(f(l)*f(r)<0){
while(r-l>eps){
mid=(l+r)/2;
if(f(mid)*f(r)>0)r=mid;
else l=mid;
}
printf("%.2lf",l);
}
}
return 0;
}