exam7-7.cpp

来自「很好的C程序设计教程」· C++ 代码 · 共 48 行

CPP
48
字号
/*文件名:exam7_7.cpp*/
#include <stdio.h>
#include <math.h>
float f(float x)
{
	float y;
	y=x*x*x-5.0*x*x+16.0*x-80.0;
	return y;
}
float xpoint(float x1,float x2)
{
	float y;
	y=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));
	return y;
}
float root(float x1,float x2)
{
	int i;
	float x,x0,y,y1,y2;
	y1=f(x1);
	do
	{
		x=xpoint(x1,x2);
		y=f(x);
		if (y*y1>0)
		{
			y1=y;
			x1=x;
		}
		else
			x2=x;
	} while (fabs(y)>=0.0001); 	/*fabs(y)返回y的绝对值*/
	return x;
}
main()
{
	float x1,x2,f1,f2,x;
	do                            	/*此循环确保输入的x1,x2满足f(x1)*f(x2)<0*/
	{
		printf("输入x1,x2:");
		scanf("%f,%f",&x1,&x2);
		f1=f(x1);
		f2=f(x2);
	} while (f1*f2>=0);
	x=root(x1,x2);
	printf("方程的根:x=%g\n",x);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?