请各位大侠帮看看小弟的程序.........这个程序有错吗?除了结构之外....
程序代码:#include<stdio.h>
#include<math.h>
#define f(x) x*x+2*x+1 //在这里定义函数
main()
{
float a,b,x1,x2,f1,f2,e;
int i;
printf("intput a b e:");
scanf("%f%f%f",&a,&b,&e);//输入区间和精度
for(i=0;;i++)
{
if(fabs(a-b)<=e)
{
printf("%f\n%d\n",f(0.5*(a+b)),i);
break;//符合这个条件后就结束循环
}
else
{
x1=a+0.382*(b-a);
x2=a+0.618*(b-a);
f1=f(x1);
f2=f(x2);
if(f(x1)<f(x2))
{
b=x2;
}
else
{
a=x1;
}
continue;//这个用来再次循环
}
}
}小弟是想用黄金分割法求极值.....不知这样编程有没有不对的地方....希望各位给点意见.....谢谢~~~调试了没有提示错误.....但是感觉不对.....
[ 本帖最后由 w527705090 于 2011-9-22 22:36 编辑 ]









