san.cpp

来自「二分法是计算方法这门学科的实验..现在上传..希望对大家有用」· C++ 代码 · 共 56 行

CPP
56
字号
#include <stdio.h>
#include <math.h>


float f(float x)
{float f;
f=sin(x);
/* f=x*x-4; */
return f;
}


void main()
{int i,k;
float h,a,b,x,y,m,n,v,e;
printf("\n请输入根的下界a:");
scanf("%f",&a);
printf("\n请输入根的上界b:");
scanf("%f",&b);
printf("\n请输入根步长  h:");
scanf("%f",&h);
printf("\n请输入精确度  e:");
scanf("%f",&e);
m=a;
v=f(a);
for(;m<b;)
{
 do
	{if (h==0) {n=b;m=b;break;}
	 m=m+h;
	 n=m;
	 if (m>b)
	 { m=b;
	 n=m;
       if (f(a)*f(m)>0) break;
	 }
	}
	while (f(a)*f(m)>0);
     for(;n-a>e;)
	 {if (f(a)==0 || f(m)==0) {m=m+h;x=0;break;}
	 x=(a+n)/2.0;
       y=f(x);
	   if (y*v>0)
	   {a=x;
	    v=y;
	   }
	   else n=x;
	 }
printf("x=%f\n",x);
/*if (m==0) m=m+h;*/
a=m;
v=f(a);
}
scanf("%f",&a);

}

⌨️ 快捷键说明

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