2013-12-20 42 views
-1

我嘗試爲下面這類問題編寫代碼;如何定義一個具有某些因素作用的元素的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); 
    } 
} 

感謝

回答

0

需要聲明M[][]之外的循環似乎的。

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

爲了清楚起見,添加了方括號。

功能是否修改mn?如果沒有,那麼此時您將使用相同的值填充數組中的每個項目。

1

好的。讓我們開始吧:

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++書籍。這些都是非常基本的東西。 :)

相關問題