如何在c中的循环内创建函数数组

Jer*_*ias 1 c

这就是我现在正在做的事情:

double fb0(const double *x, const double *par){ // B0'
    return -par[0]+(1-Cxr(0,2)*par[1])*x[0]+Cxr(0,2)*par[1]*x[0]; 
}
double fb1(const double *x, const double *par){ // B1'
    return -par[0]+(1-Cxr(1,2)*par[1])*x[1]+Cxr(1,2)*par[1]*x[1];
}
double fb2(const double *x, const double *par){ // B2'
    return -par[0]+(1-Cxr(2,2)*par[1])*x[2]+Cxr(3,2)*par[1]*x[3];
}
double fb3(const double *x, const double *par){ // B3'
    return -par[0]+(1-Cxr(3,2)*par[1])*x[3]+Cxr(4,2)*par[1]*x[4];
}
double fb4(const double *x, const double *par){ // B4'
    return -par[0]+(1-Cxr(4,2)*par[1])*x[4]+Cxr(5,2)*par[1]*x[5];
}
...
Run Code Online (Sandbox Code Playgroud)

一直持续到fb20。然后我调用我的void main(){}. 我想做的是在我的之前有这样的事情void main(){}

for(int i=0;i<20;i++){
   double fb[i](const double *x, const double *par){return -par[0]+(1-Cxr(i,2)*par[1])*x[i]+Cxr(i+1,2)*par[1]*x[i+1];}
}
Run Code Online (Sandbox Code Playgroud)

这可能吗?这样我就能够求解具有任意 i 的方程组。

P__*_*J__ 5

只需再添加一个参数

double fb(const double *x, const double *par, size_t num)
{
    return -par[0]+(1-Cxr(num,2)*par[1])*x[num]+Cxr(num + 1,2)*par[1]*x[num + 1]; 
}
Run Code Online (Sandbox Code Playgroud)

...您将不需要 20 个函数