C语言迭代求解

来源:百度知道 编辑:UC知道 时间:2024/05/05 15:19:04
没有答案出来,啥问题呢?请看看
#include "stdio.h"
#include "math.h"
void main()
float fun(float k)
{
return(k*(k*(k*(k*(k+1)+2)-2)+1)-3); /*能不能告诉我这个return里的意思*/
}
main()
{
float xmin=0,
xmid=0,
xmax=0,
fmin=0,
fmid=0,
fmax=0;
do{
printf("\n Input xmin & xmax:");
scanf("%f%f",&xmin,&xmax);
fmin=fun(xmin);
fmax=fun(xmax);
}while(fmin*fmax>0);
for(;fabs(fmax-fmin)>=1e-5;)
{
xmid=(xmin+xmax)/2;
fmid=fun(xmid);
if(fmid*fmin<0)
{
xmax=xmid;
fmax=fmid;
}
else
{
xmin=xmid;
fmin=fmin;
}
}
printf("\nx=%5.3f\n",xmid);
return ;
}

//请输入0.5 2
//将解出方程解为x=1
#include "stdio.h"
#include "math.h"
double fun(double k)
{
return k*k*k*k*k+k*k*k*k+2*k*k*k-2*k*k+k-3; /*这是一个函数,方程*/
}

main()
{
double xmin=0,
xmid=0,
xmax=0,
fmin=0,
fmid=0,
fmax=0;

do{
printf("\n Input xmin & xmax:");
scanf("%lf%lf",&xmin,&xmax);
fmin=fun(xmin);
fmax=fun(xmax);
}while(fmin*fmax>=0);

for(;fabs(fmax-fmin)>=1e-5;)
{

xmid=(xmin+xmax)/2;
fmid=fun(xmid);

if(fmid==0)
break;

if(fmid*fmin<0)
{
xmax=xmid;
fmax=fmid;
}
else
{
xmin=xmid;
fmin=fmid;
}
}
printf("\nx=%5.3f\n",xmid);
return ;
}

改了一下,自己看看吧
#include "stdio.h"
#include "math.h"
//void main()
fl