2012-02-01 98 views
0

我的代碼創建一個二維矩陣:設置一維矩陣模式等於2D矩陣

for(i=0; i < size; i++) 
{ 
    for(j=0; j <size; j++) 
    { 
     a1[i][j] = i+1 + j+2; 
    } 
} 

我試圖複製所創造的矩陣模式:

double* 
a = malloc(sizeof(double)*randk*randk); 

我似乎無法弄清楚如何定義相同的模式。

回答

0

你的意思是創建相同的數字模式?這只是:

for(int i = 0; i < randk; ++i) 
    for(int j = 0; j < randk; ++j) 
    a[i * randk + j] = i + j + 3; 

或者如果你喜歡一個循環:

for(int i = 0; i < randk * randk; ++i) 
    a[i] = (i/randk) + (i % randk) + 3; 
1
+0

我不是試圖動態分配一個多維數組...我需要產生相同數量的圖案單一陣列中。 – chrstahl89 2012-02-01 02:32:31

+0

該FAQ條目仍然適用。如果您按照他們的描述分配多維數組,您可以像之前一樣繼續使用'a1 [i] [j]'。或者,如果您必須使用一維數組,那麼FAQ條目解釋瞭如何訪問元素。閱讀整個事情。 – jamesdlin 2012-02-01 02:37:00