回 帖 发 新 帖 刷新版面

主题:求大虾帮帮小弟看看这个程序

#include<math.h>
#include<iostream.h>
#include<stdio.h>
#include<stdlib.h>
#define E1 0.0001
#define ep 0.0001
#define n 2
#define k 4
float af=10;
int i,j;
double X0[n],XX[n],X[k][n],FF[k];
void produce(double A[n],double B[n]);                           /* 产生k个复合形顶点 */
double a[n],b[n];
double F(double C[n]);                                           /* 目标函数 */
int cons(double D[n]);                                           /* 约束函数 */
void bou();                                                      /* 给出边界条件 */
double *Complex();
/* 制定这样的例子 */
double F(double C[n])
{
    double F;
    F=25/(C[0]*C[1]*C[1]*C[1]);                                  /* 目标函数 */
    return F;
}
/* 检查在约束条件下可选择顶点的可行性 */
int cons(double D[n])
{
    if(((30/D[0]*D[1]*D[1]-50)<=0)&&((0.0004*D[1]-0.001)<=0)&&
        ((D[0]>=2)&&(D[0]<=4))&&((D[1]>=0.5)&&(D[1]<=1)))        /* 约束条件 */
        return 1;
    else
        return 0;
}
void bou()                                                       /* 给出设计变量的边界条件 */
{
    a[0]=2;
    a[1]=0.5;
    b[0]=4;
    b[1]=1;
}
void produce(double A[n],double B[n])                            /* 产生复合形的k个顶点 */
{
    double rr;
    int jj;
    do
    {
        rr=rand();
        rr=rr/32767;
        for(i=0;i<n;i++)
        {
            X[0][i]=A[i]+rr*(B[i]-A[i]);
            XX[i]=X[0][i];
        }
        while(cons(XX)==0);
        for(j=1;j<k;j++)                                        /* 生成其他的k-1个顶点 */
        {
            rr=rand();
            rr=rr/32767;
            for(i=0;i<n;i++)
            {
                X[j][i]=A[i]+rr*(B[i]-A[i]);
            }
        }
        for(j=0;j<k;j++)                                        /* 检查每个点的可行性 */
        {
            for(i=0;i<n;i++)
            {
                X0[i]=0;
                for(jj=0;jj<j+1;j++)
                {
                    X0[i]+=X[jj][i];
                }
                X0[i]=(1/(j+1.0))*(X0[i]);
                XX[i]=X[j][i];
            }
            while(cons(XX)==0)                                 /* 如果Xji不可行,重新生成它 */
            {
                for(i=0;i<n;i++)
                {
                    X[j][i]=X0[i]+0.5*(X[j][i]-X0[i]);
                    XX[i]=X[j][i];                             /* 更新XX */
                }
            }
        }
    }
}
double *Complex( )
{
    double EE,Xc[n],Xh[n],Xg[n],Xl[n],Fh,Fg,Fl,Xr[n];
     double *prXl;
    int h,g,l;[code=c]
请填写代码
[/code]

回复列表 (共1个回复)

沙发

为什么老是在double *Complex( )上一行出现这个错误1.c(92) : error C2059: syntax error : '}'为什么老是在下面两行出现    
        double *prXl;
    int h,g,l;
d:\c语言\复合形法\1.c(96) : error C2143: syntax error : missing ';' before 'type'
d:\c语言\复合形法\1.c(97) : error C2143: syntax error : missing ';' before 'type'
这些错误,究竟哪里有问题呀??麻烦大家了

我来回复

您尚未登录,请登录后再回复。点此登录或注册