轉二維陣列的問題,,求解答

2025-02-10 15:40:08 字數 3616 閱讀 7024

1樓:清茶稀飯

前面的array新增了三組資料,這個時候,你去掉了第二組,那麼自然就變成了。

hottopic = array (

1] =array ( id] =1 [name] =上海電影節)2] =array ( id] =1 [name] =上海電影節)這樣子了。array不需要你去控制它該到第幾序列了,他永遠都是從0,1,2 這樣從小到達排的。所以你這個已經不需要去解決了。

二維陣列和一維陣列怎麼轉換?

2樓:惠企百科

這個可以用巨集來實現。舉個例子說,比如你定義乙個大小為100的一維陣列a,然後你需要別人唯態輸入m=8,n=9(很多情況別人不可能按照你的意圖來剛好用m和n整除一維陣列的下表最大值,也就是說那個一維陣列只需要保證足夠大就可以了),然後你希望得到乙個8*9的森兄二維矩陣b[8][9]。

引用這個二維矩陣的時候,直接使用b[3][4]來引用第三行第四列的元素,用巨集定義(以下巨集定義並沒有上機除錯,只是提供思路)

#define b[(x)][y)] a[((x*m)+(y%n)]<

解釋一下:x*m,加入你需要b[3][4],那麼就是對應一指春源維陣列第3*8+4%9=28個元素。

二維陣列問題

3樓:李敬財

我是新手?不怎麼懂,你看啊!行 9個 列5個 二維陣列 就是 45個 第一次 a01 那麼 他應該是 a01~a04 乙個元素,我感覺 應該是 a81 僅供參考。

4樓:網友

a01 = 0

a02 = 4

a03 = 8

a11 = 20

a12 = 24

所以按行儲存的公式是aij = 20*i+4*(j-1)

所以b = a35 = 20*3+4*(5-1) = 60+16 = 76

c = a53 = 20*5+4*(3-1) = 100+8 = 108

下面是按列儲存。

a01 = 0

a11 = 4

a21 = 8

a11 = 36

a12 = 40

所以按列儲存的公式是aij = 4*i + 36*(y-1)

所以d = a71 = 4*7 + 36*(1-1) = 28

e = a24 = 4*2 + 36*(4 -1)= 8+36*3 = 116

a的位址無論是按行儲存還是按列儲存都一樣的,行儲存:a85 = 20*8 + 4*(5-1) = 160+16 = 176

列儲存:a85 = 4*8 + 36*(5-1)=32 + 144 = 176

所以答案是176,76,108,28,116

5樓:網友

1> 設a[m][n]為第x個儲存的元素,則它的第乙個位元組的位址為(x-1)*4,(這個簡單吧,每個元素4個位元組,第乙個為0,第二個為4,第三個為8...關鍵在於怎麼算這個x。

2> 若按行儲存,則每行有5個元素,那麼a[m][n]為第m*5+n個元素,怎麼算的?答:a[m][n]為第m+1行,第n個數,由於是按行儲存,到第m+1行之前,已經儲存了前面m行的數,也就是m*5個數,加上本行的就是第m*5+n個。

所以a[m][n]第乙個位元組的位址(m*5+n-1)*4

3>若按列儲存,則每列有9個元素,那麼a[m][n]為第(n-1)*9+(m+1)個元素。同樣a[m][n]為第n 列,第m+1個數,到第n列之前,已經儲存了前面n-1列的數,也就是(n-1)*9個數,加上本列的就是第(n-1)*9+(m+1)個。所以a[m][n]第乙個位元組的位址[(n-1)*9+(m+1)-1]*4

二維陣列問題請教,謝了!

6樓:網友

200+(60*18+25)*4 = 4620

a[50][60]表示a這個二維陣列有50行60列,共3000個元素,每個元素佔4個位元組。

而a[18][25]是二維陣列a[50][60]的第18行第25列的那個元素,由於行和列的元素下標都是從0開始的,所以a[18][25]是a的第(60*18+25)個元素,也就是第1105個元素(從0開始計算)。

如果基位址是0的話,a[18][25]的位址應該是1105*4=4420。

但是現在基位址是200,所以還要再加上200,為4420+200=4620。

如何把乙個一維陣列轉換成二維陣列

7樓:前世愛過你們卦

假設你一維陣列的大小為100

你需要把它拆分為20*5的乙個二維矩陣。

不妨這樣去實現:

假設一維陣列的下標為x,可以把它在邏輯上轉換為二維陣列的下標:m = x / 5n = x % 5比如你要找第一行第二列的元素,那在一維陣列中就是a[1]

轉化為二維座標就是b[0][1]。

其實多維陣列和一維陣列一樣,在計算機中都是用的一段連續的記憶體。只是他們的表現形式不一樣。

另外,c裡邊沒有動態的二維陣列,第二維的大小必須指定的。

答:這個可以用巨集來實現。舉個例子說,比如你定義乙個大小為100的一維陣列a,然後你需要別人輸入m=8,n=9(很多情況別人不可能按照你的意圖來剛好用m和n整除一維陣列的下表最大值,也就是說那個一維陣列只需要保證足夠大就可以了),然後你希望得到乙個8*9的二維矩陣b[8][9]。

用巨集定義(以下巨集定義並沒有上機除錯,只是提供思路)

二維陣列問題

8樓:匿名使用者

a) 176

a(5,5) 說明一維排在第5個,那麼前面有4個已儲存,二維也排在第5個,前面也有4個二維資料已儲存。

如圖,二維陣列的方陣轉換程式,請問它是怎麼把二維陣列轉換成一維陣列的,請詳細解釋一下,謝謝!

9樓:怎好此生

你說的是矩陣轉換吧,先說轉一維這個方法。

我先給你講一下原理:

二維陣列可以看成一位陣列的集合,比如x[3][3],就可以看做,三個x[3]的集合。

這種可以看成軍訓時站隊,第一行第一列就x[0][0],那麼第二行第一列,就是x[1][0];

如果我直接進行編號 我放棄二維陣列的編號,第一行數完我接著數,第二行第一列,就變成x[3]也就是第四個。

我先給你看個比較容易理解的。

int i,j,k=0;

for(i=0;i

就以小鍵盤為例,行列轉換,753不動,19,48,26,互換,最後就變成了741,852,963,我給你加一下**註釋:

#include

int at(int a,int n)

int i,j,t;

for(i=0; i

而且你截圖裡的部分**出現了錯誤,我已幫你改正。

二維陣列問題,求解,謝謝

10樓:我愛

因為是n*n的對稱矩陣,所以aij = aji,aji是被放進陣列b中的元素,這時候只要找到它的位置就ok了。

因為是以列為主序,也就是說,放進去b的元素是這樣子的:a10,a20,a21,a30,a31,a32...

所以,aji的位置應該是1+2+3+..j-1) +i比如說找a31,位置就是1+2+1=4,就是b[4]

php二維陣列轉JS

應該沒有問題哈,我測試的 正常輸出了0b81 var str var arr json.parse str console.log arr 1 name data array array id 1 albumid 8 name 0ac9 array id 2 albumid 8 name 0b81 ...

二維陣列的變換,二維陣列和一維陣列怎麼轉換的啊

最簡單的,雙層迴圈。迴圈變數是行列,顛倒變數賦值就可以。以c為例 for int i 0 i 2 i for int j 0 j 3 j b j i a i j 重點難點。定義陣列時候要看清楚,別最後賦值時溢位。matlab二維陣列的建立及其變換 1 matlab中,一般使用方括號 逗號 分號 與空...

對於二維陣列inta,對於二維陣列inta35,a00,a0,a0,a,a的值是否一樣各代表什麼含義

a 3 5 指的是二維陣列在 3,5 處的值 a 0 0 a 0 a相同,都指二維陣列a的首地址 a 0 a相同,指的是在0處指向下一維的陣列指標 c語言,對於二維陣列int a 3 4 與 a 2 0 的值不等的是 5 ad吧,a 2 0 就是第2行首地址。a步長是整個陣列長度a 2跳飛了。b是c...