例子输出3个0.00,不知道哪里对了,哪里错了
代码如下:
#include<bits/stdc++.h>
using namespace std;
double a,b,c,d;
double jg(double x){
return a*x*x*x+b*x*x+c*x+d;
}
int main(){
double x;
int n;
cin>>a>>b>>c>>d;
for(int i=-100;i<=100;i++){
int j=i+1;
double l=i,r=j;
if(jg(l)==0){
printf("%.2lf",i);
cout<<' ';
n++;
}
if(jg(l)*jg(r)<0){
while(r-l>=0.001){
double mid=(l+r)/2;
if(jg(mid)*jg(r)<=0) l=mid;
else r=mid;
}
printf("%.2lf",r);
cout<<' ';
n++;
}
if(n == 3){
break;
}
}
return 0;
}