注册 登录
编程论坛 VC++/MFC

vc程序设计--非常感谢!程序执行后停不下来,请求帮助!

tonghuaixing 发布于 2011-05-08 19:44, 619 次点击

程序没有显示任何错误和警告,但是运行时不会停下来,还请高手帮帮忙,修改一下。
程序地址
http://hi.baidu.com/tonghuaixing/blog/item/7d514b32c7b91bbf5fdf0e0d.html

这是利用优化设计中的复合形法编的,这是本程序的数学模型。
float objfx(float x[])
{
float g0=9.8f,pl=3.14f;
return float(69120000*pl*pl*(1/tan(x[1])+1/tan(x[2]))*(tan(x[1])+tan(x[2]))*(x[3]*x[3]-x[4]*x[4])/(51*g0*tan(x[0])*tan(x[2])));
}
void constraint(float x[],float g[])
{
 float pl=3.14f;
 g[0]=x[0]-pl/36;
 g[1]=pl/15-x[0];
 g[2]=x[1]-pl/90;
 g[3]=pl/20-x[1];
 g[4]=x[2]-pl/4;
 g[5]=11*pl/36-x[2];
 g[6]=x[3]-0.7f;
 g[7]=0.9f-x[3];
 g[8]=x[4]-0.6f;
 g[9]=0.7f-x[4];


}

main()
{

 float x[5],bl[5],bu[5],xcom[5][100],f,pl=3.14f;
 int n=5,nf=0,ng=0;
 bl[0]=pl/36;
 bl[1]=pl/90;
 bl[2]=pl/4;
 bl[3]=0.7f;
 bl[4]=0.6f;
 bu[0]=pl/15;
 bu[1]=pl/20;
 bu[2]=11*pl/36;
 bu[3]=0.9f;
 bu[4]=0.7f;
 complex(n,10,10,1.0e-3f,x,bl,bu,xcom,&f,&nf,&ng);
 printf("\n x[0]=%f,x[1]=%f,x[2]=%f,x[3]=%f,x[4]=%f",x[0],x[1],x[2],x[3],x[4]);
 printf("\n minF(x)=%f",f);
 printf("\n nf=%d,ng=%d",nf,ng);
 getch();
 return 0;

}
2 回复
#2
yuccn2011-05-10 12:32
死循环?
#3
身不由己2011-05-14 21:41
在VC++6Z中提示
-------------------Configuration: ycx1 - Win32 Debug--------------------
Compiling...
ycx1.cpp
d:\c程序设计\ycx1\ycx1.cpp(4) : error C2065: 'tan' : undeclared identifier
d:\c程序设计\ycx1\ycx1.cpp(38) : error C2065: 'complex' : undeclared identifier
d:\c程序设计\ycx1\ycx1.cpp(39) : error C2065: 'printf' : undeclared identifier
d:\c程序设计\ycx1\ycx1.cpp(42) : error C2065: 'getch' : undeclared identifier
执行 cl.exe 时出错.

ycx1.obj - 1 error(s), 0 warning(s)
只有本站会员才能查看附件,请 登录
1