2个回答
2015-11-19
展开全部
按照你的要求只实现了这个方程的,不能泛用,不过很容易修改,代码如下:
#include<stdio.h>
#include<math.h>
float function(float x)
{
float result = 0.0;
result = ((x*x*x) - (3*x) + 1);
return result;
}
int main()
{
float a = 0;
float b = 1;
float e = (float)0.001;
float m = (a+b)/2;
while(1)
{
if (fabs((function(m)) <= e))
{
printf("result is %lf ", m);
return 1;
}
else if (function(m) > 0)
{
a = m;
}
else if (function(m) < 0)
{
b = m;
}
m = (a+b)/2;
}
return 1;
}
展开全部
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
double f(double x)
{
return x*x*x-3*x+1;
}
int main()
{
double i=1.0, j=2.0;
while(fabs(i-j)>=0.001)
{
if(f((i+j)/2.0)<0)
i=(i+j)/2.0;
else
j=(i+j)/2.0;
};
printf("%lf",i);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询