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...