#include <stdio.h>
#include <math.h>
#define DEFAULT_UPPER(10)
#define DEFAULT_LOWER(-10)
#define DEFAULT_E(0.00000001)
#define _MID(x,y)((x+y)/2)
#define _VALUE(x)(2*x*x*x-4*x*x+3*x-6)
double _e
int getRoot(double lower, double upper, double *result)
main()
{
double root
printf("Enter a deviation:")
scanf("%lf",&_e)
if(_e == 0.0)
_e = DEFAULT_E
if(getRoot(DEFAULT_LOWER, DEFAULT_UPPER, &root))
printf("Root:%2.8lf\n", root)
else
printf("Root:No Solution.\n")
}
int getRoot(double lower, double upper, double *result)
{
*result = _MID(lower,upper)
if(upper - lower <= _e)
return 1
if(_VALUE(lower)*_VALUE(*result) <= 0)
return getRoot(lower, *result, result)
else if(_VALUE(*result)*_VALUE(upper) <= 0)
return getRoot(*result, upper, result)
else
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)