数据不大
死算就行
要注意一点
有时候x可能是循环小数
就会导致找不到数据
那就可以判断得出答案零是否在一个区间
是的话就去中间数
这样更精确
可以避免结果不是三个的情况
以下是代码
//初始化
#include <bits/stdc++.h>
//命名文件
using namespace std;
//定义变量
double a,b,c,d,s1,s2;
//定义算方程右边数字
double f(double x){
//返回数字
return a * x * x * x + b * x * x + c * x + d;
}
//定义主函数
int main(){
//输入
cin>>a>>b>>c>>d;
//纯模拟,死算,反正不大
for(double i = -100;i <= 100;i = i + 0.0001){
//算两边,防止x是循环的,反正前两位,在区间内就行了
s1 = f(i);
s2 = f(i + 0.0001);
//判断
if(s1 <= 0 && s2 >= 0 || s2 <= 0 && s1 >= 0){
printf("%.2lf ",(i + i + 0.0001) / 2);
}
}
//返回
return 0;
}
点个赞吧!!!求求了!!!
841

被折叠的 条评论
为什么被折叠?



