C语言学习记录之二分法求方程根
#include <stdio.h>
#include <math.h>
int main() {
double x0, x1, x2, f0, f1, f2;
do {
printf("请输入两个点:");
scanf("%lf,%lf", &x1, &x2);
f1 = ((2 * x1 - 4) * x1 + 3) * x1 - 6;
f2 = ((2 * x2 - 4) * x2 + 3) * x2 - 6;
printf("f1 = %f, f2 = %f\n", f1, f2);
} while (f1 * f2 > 0);
do {
x0 = (x1 + x2) / 2;
f0 = ((2 * x0 - 4) * x0 + 3) * x0 - 6;
if (f0 * f1 < 0) {
x2 = x0;
f2 = f0;
}
else {
x1 = x0;
f1 = f0;
}
} while (fabs(f0) >= 0.00001);
printf("方程根为:%lf\n", x0);
return 0;
}