[問題] 陣列整合(超級初學者)

看板C_and_CPP (C/C++)作者 (騎這車飛翔)時間14年前 (2011/07/28 10:25), 編輯推噓0(0036)
留言36則, 4人參與, 最新討論串1/1
開發平台(Platform): DEV C++ 問題(Question):小弟要將多筆陣列資料,融入一個陣列。 如附圖:http://ppt.cc/4YkW 假如k[0,0]=01 k[1,0]=04 k[2,0]=08 k[3,0]=11 那K[0]=01040811 小弟我有找到VC++的參考資料,但是對VC不是很熟悉。 for(r=0; r<4; r++) { for(c=0; c<4; c++) { k[0][r][c] = key[r+c*4]; } } for(i=1; i<=10; i++) { for(j=0; j<4; j++) { for(r=0; r<4; r++) { t[r] =j? k[i][r][j-1] : k[i-1][r][3]; } } } t[r] =j? k[i][r][j-1] : k[i-1][r][3]; 這一段的?跟: 不知道是甚麼意思,有高手可以幫忙解釋一下嗎? 或是轉成dev c++的語法嗎?? 小弟猜測它的?可能是亂碼... 程式碼(Code): 補充說明(Supplement):第一次發文,有甚麼不正確或是需要補充,麻煩各位指正^^" -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.253.121.109 ※ 編輯: a2314147 來自: 111.253.121.109 (07/28 10:30)

07/28 10:29, , 1F
a ? b : c 就是 if (a) b else c 的意思
07/28 10:29, 1F

07/28 10:34, , 2F
謝謝回答!! 原來我看的資料不是我要的結果..
07/28 10:34, 2F

07/28 10:34, , 3F
另外?:的優先級比=高 所以是先判斷再assign給t[r]
07/28 10:34, 3F

07/28 10:35, , 4F
那有人知會怎麼打出我要的結果嗎...
07/28 10:35, 4F
※ 編輯: a2314147 來自: 111.253.121.109 (07/28 10:38)

07/28 10:46, , 5F
...看你的圖 是要上色嗎XD
07/28 10:46, 5F

07/28 10:49, , 6F
以資料來看 沒有三維陣列的必要...
07/28 10:49, 6F

07/28 10:49, , 7F
而且不應該有08這種東西
07/28 10:49, 7F

07/28 10:57, , 8F
是沒有做到三維的必要..我只需要2維就好
07/28 10:57, 8F

07/28 11:00, , 9F
因為他是要輸入16進制的東西,它顯示的時候要求,0要存在
07/28 11:00, 9F

07/28 11:01, , 10F
16進制是0x or 0X... 0開頭是8進制..
07/28 11:01, 10F

07/28 11:10, , 11F
哦哦 我的意思是編譯顯示的時候要出現。
07/28 11:10, 11F

07/28 11:24, , 12F
你的意思是執行吧... printf("%#x"...);
07/28 11:24, 12F

07/28 11:26, , 13F
恩..是的不過我的重點在於怎麼整合..OTZ
07/28 11:26, 13F

07/28 11:28, , 14F
整合...你改一下思考方式 他們就能整合在一起...
07/28 11:28, 14F

07/28 11:32, , 15F
你就讀二維陣列 然後輸出...這有什麼問題嗎?
07/28 11:32, 15F

07/28 11:51, , 16F
可以麻煩您打一個範例嗎!? 小弟魯鈍,腦袋打結中..
07/28 11:51, 16F

07/28 12:03, , 17F
你先說說原來的想法吧...
07/28 12:03, 17F

07/28 12:04, , 18F
二維陣列怎麼讀都可以..直的、橫的、亂七八糟的都可以
07/28 12:04, 18F

07/28 12:07, , 19F
大概是這種味道 http://pastie.org/2282849
07/28 12:07, 19F

07/28 12:10, , 20F
話說輸入的可是hex耶...
07/28 12:10, 20F

07/28 12:11, , 21F
喔喔,沒注意到是16進制
07/28 12:11, 21F

07/28 12:12, , 22F
我猜k的單位是unsigned char XD
07/28 12:12, 22F

07/28 12:14, , 23F
小改一下就行了 http://pastie.org/2282869
07/28 12:14, 23F

07/28 12:39, , 24F
http://pastie.org/2282936 意思差不多..
07/28 12:39, 24F

07/28 12:42, , 25F
不知道原po需不需要把組合後的資料再拿來用
07/28 12:42, 25F

07/28 16:05, , 26F
哦哦 感謝大大的教導,是的 輸出後的東西還要拿出來用。
07/28 16:05, 26F

07/28 16:30, , 27F
小弟回到家再試試看(_ _)
07/28 16:30, 27F

07/28 16:41, , 28F
可以請問一下s[i] = s[i]<<8 | arr[j][i]
07/28 16:41, 28F

07/28 16:41, , 29F
他的<< |是甚麼意思嗎
07/28 16:41, 29F

07/28 16:43, , 30F
<<是shift, | 是 or, 請google "bitwise operation"
07/28 16:43, 30F

07/28 16:50, , 31F
精闢 感謝大大的講解 我明白了
07/28 16:50, 31F

07/28 17:02, , 32F
剛剛自己測了一下,多了一個問題 |這個 為什麼不能用+
07/28 17:02, 32F

07/28 17:02, , 33F
不是已經平移8個位元了嗎0.0 應該不會覆蓋到不是?
07/28 17:02, 33F

07/28 17:32, , 34F
要用+的話要這樣寫 s[i] = (s[i]<<8) + arr[j][i]
07/28 17:32, 34F

07/28 17:32, , 35F
這是優先級的問題
07/28 17:32, 35F

07/28 17:57, , 36F
哦哦 可以了 謝謝^^
07/28 17:57, 36F
文章代碼(AID): #1ECCYYqM (C_and_CPP)
文章代碼(AID): #1ECCYYqM (C_and_CPP)