求助(玄关)

学术版

用的是Devc++
by chenzhiyuAndy @ 2024-04-15 13:33:22


@[chenzhiyuAndy](/user/1269186) 百度搜索「浮点数误差」。
by Carroty_cat @ 2024-04-15 13:39:35


@[chenzhiyuAndy](/user/1269186) 改成cout<<int(1*1*1*1-4.65*1*1+2.25*1+1.4);
by Luka__Modric @ 2024-04-15 13:40:46


@[Luka__Modric](/user/839893) Md 炸了。请使用反斜杠。
by Carroty_cat @ 2024-04-15 13:41:46


@[Carroty_cat](/user/912750) @[Luka_Modric](/user/101944) 谢谢,已关,我还有一个问题```double f(double x){return a*x*x*x+b*x*x+c*x+d;}```这个咋改?abcd都是double,加int会影响后面的运算
by chenzhiyuAndy @ 2024-04-15 13:55:09


刚刚那个问题就源自x=1,a=1,b=-4.65,c=2.25,d=1.4的时候
by chenzhiyuAndy @ 2024-04-15 13:56:23


@[chenzhiyuAndy](/user/1269186) nsdd,但是有题目吗
by Luka__Modric @ 2024-04-15 14:09:52


@ Luka_Modric P1024,75ps代码: ``` #include<bits/stdc++.h> #define INE 0.0001 using namespace std; double a,b,c,d,s=-101; double f(double x){return a*x*x*x+b*x*x+c*x+d;} int main(){ cin>>a>>b>>c>>d; for(int i=-100;i<=100;i++){ if(f(i)*f(i+1)<=0){ for(double j=i;j<=i+1;j+=0.01){ if(abs(f(j))<INE){ if(j<=s+0.01) break; printf("%.2lf ",j); s=j; break; } } } } return 0; } ``` 第二个点WA,第二个点数据: ``` 输入:1 -4.65 2.25 1.4 输出:-0.35 1.00 4.00 我的输出:-0.35 4.00 ```
by chenzhiyuAndy @ 2024-04-15 14:17:34


@[Luka__Modric](/user/839893)
by chenzhiyuAndy @ 2024-04-15 14:18:16


@[chenzhiyuAndy](/user/1269186) 特判一下吧,一眼盯真浮点误差
by Luka__Modric @ 2024-04-15 14:26:39


| 下一页