<span style="font-family:Comic Sans MS;font-size:18px;">#include<stdio.h>//用二分法求2x^3-4x^2+3x-6=0在-10~10之间的根
#include<math.h>
double f(double x)
{
double y=2*x*x*x-4*x*x+3*x-6;
return (y);
}
int main()
{
double x1=-10,x2=10,mid,ans=11;
while(ans==11)
{
mid=(x1+x2)/2;
if(fabs(f(mid))<1e-6)ans=mid;
else
{
if(f(x1)*f(mid)<0)x2=mid;
else x1=mid;
}
}
printf("%.2lf\n",ans);
return 0;
}</span>
tip:利用函数可以让程序的流程一目了然而不至于写得乱糟糟的。
用(-1e-6~1e-6这样的很小的区间代表0,避免误差导致的无解。
written by Sneexy.