C++ 如何定义一个m乘n的数组,其中的元素是某些因素的函数

C++ 如何定义一个m乘n的数组,其中的元素是某些因素的函数,c++,C++,我试图为这类问题编写代码,如下所示 这是代码的一部分,我已经定义了函数。 我想在这个循环中,M[I][j]根据函数计算并分配给这个单元格 但我有一个错误“表达式必须有一个常量值” 有谁能帮我写这种代码吗 for (i=0;i=2;i++){ for (j=0;i=2;j++){ double M[i][j]; M[i][j] = function(n,m); } } 谢谢您需要在循环之外声明M[][ double M[2][2]; for (i=

我试图为这类问题编写代码,如下所示

这是代码的一部分,我已经定义了函数。 我想在这个循环中,M[I][j]根据函数计算并分配给这个单元格

但我有一个错误“表达式必须有一个常量值”

有谁能帮我写这种代码吗

for (i=0;i=2;i++){
    for (j=0;i=2;j++){
        double M[i][j];
        M[i][j] = function(n,m);
    }
}

谢谢

您需要在循环之外声明
M[][

double M[2][2];
for (i=0;i=2;i++)
{
    for (j=0;i=2;j++)
    {
        M[i][j] = function(n,m);
    }
}
为清晰起见,增加了括号

该函数是否修改了
m
n
?如果没有,那么此时您将使用相同的值填充数组中的每个项。

好的。让我们开始:

1) 声明数组

double M[i][j]未声明数组。在C/C++中,声明静态数组的方法是:

double M[MAX1][MAX2]; //where MAX1 and MAX2 are some constant, predefined values.
有一种称为可变长度数组的东西,但现在,让我们假设C/C++中的数组长度必须是常量

总结如下:

int max = 100;
[...]
double Array[max]; ---- WRONG

#define MAX 100
[...]
double Array[MAX]; ---- RIGHT
同样的事情也适用于多维数组

此外,您应该在
for
循环之前执行此操作-在每次迭代中声明数组没有任何意义

2) 赋值

int n=5,m=5//例如
对于(int i=0;i
int n=5, m=5; //for example
for(int i=0;i<n;++i)
 for(int j=0;j<m;++j)
 {
   M[i][j]=someFunction(n,m);
 }