我做了一个晚上,还是想不出问题所在,有能解决的,给我个提示
#include<stdio.h>#include<math.h>
int main(void)
{
double x0,x1,eps,m,n,a,f();
printf("please input x0=\n");
scanf("%lf",&x0);
printf("please input eps=\n");
scanf("%lf",&eps);
printf("please input m=\n");
scanf("%lf",&m);
n=0;
do
{
x1=f(x0);
if(fabs(x1-x0)>m)
{
printf("迭代失败,程序终止\n");
return 0;
}
a=x0
x0=x1;
n++;
}
while((x0-a)>eps);
printf("x0=%lf,n=%lf",x0,n);
return 0;
}
double f(double x)
{
double y;
y=0.5*log(4-x);
return y;
}
/*为什么,每次输入x0=1,答案只能迭代到1次而已,这个问题的解要迭代到第八次*/