你定义的f函数只有一个形参x,所以在main函数中输入的你所认为的实参abcd 的值无法转给f函数 所以运行时会出错 只要赋给abcd确定的值或增加f函数的形参
scanf("%f,%f,%f,%f",&d,&d,&d,&d)这句也错了应该是scanf("%f,%f,%f,%f",&a,&b,&c,&d)
#include<math.h>#include<stdio.h>
float f(float x)
{ //计算f(x)的值
return 2*x*x*x-4*x*x+3*x-6
}
float point(float x1,float x2)
{
//计算与x轴交点的x值
return (x1*f(x2)-x2*f(x1))/(f(x2)-f(x1))
}
int main()
{
//输入两个数x1,x2
float x1,x2,x
do
{
printf("输入两个数x1,x2:")
scanf("%f%f",&x1,&x2)
}while (f(x1)*f(x2)>= 0)// 当输入两个数大于0为真时,继续重新输入
//关键循环步骤:
do
{
x=point(x1,x2)//得到交点的值
if(f(x)*f(x1)>0)
x1=x//新的x1
else
x2=x
}while (fabs(f(x)) >0.0001)//0.0001为取值精度
printf("一个解为%f\n",x)
}