我嘗試爲下面這類問題編寫代碼;如何定義一個具有某些因素作用的元素的n元素數組
這是代碼的一部分,我已經定義了該函數。 我想在這個循環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);
}
}
感謝
我嘗試爲下面這類問題編寫代碼;如何定義一個具有某些因素作用的元素的n元素數組
這是代碼的一部分,我已經定義了該函數。 我想在這個循環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; //for example
for(int i=0;i<n;++i)
for(int j=0;j<m;++j)
{
M[i][j]=someFunction(n,m);
}
這將的function(n,m)
值分配給您的n
X m
數組的每個元素。 我想這是你的想法。
您可能想要閱讀一本好的C/C++書籍。這些都是非常基本的東西。 :)