用弦截法求解一元三次方程的根(利用c语言实现)

Python013

用弦截法求解一元三次方程的根(利用c语言实现),第1张

我只看了你的第二个

你定义的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)

}