精華區beta TransCSI 關於我們 聯絡資訊
定義int a[4][5] 若a=1000 問(a+2)+3 = ? (a)1024 (b)1026 (c)1028 (d)1030 (e)1036 請各位幫忙一下 請附解說 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.217.230.89 > -------------------------------------------------------------------------- < 作者: E9E7 (early!) 看板: TransCSI 標題: Re: [問題] 元智83年考古 時間: Mon Jun 27 21:54:35 2005 ※ 引述《WenSky (橡皮擦)》之銘言: : 定義int a[4][5] : 若a=1000 : 問(a+2)+3 = ? : (a)1024 (b)1026 (c)1028 (d)1030 (e)1036 : 請各位幫忙一下 請附解說 謝謝 我的見解是這樣 用row major下來算 這裡的a,還有(a+2)+3應該都是指"記憶體的位置" 假使每個integer需要兩個cell來存的話 那麼(a+2)+3應該只的是第二個row還有第三個col(兩者皆從零開始數起) 所以我想應該這麼算吧... (a+2)=a + (2 * (5) + 3) * (2 Cell/int) ^ ^ ^ ^每個integer需要兩個Cell ^ ^ ^第三個column ^ ^每個row都有五個column ^再第二個row,表示跳過了兩個row(分別為第0還有第1row)了 = 1000 + 13*2 = 1026 請指教^^" -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.168.30.50 ※ 編輯: E9E7 來自: 61.231.27.136 (06/28 14:40) > -------------------------------------------------------------------------- < 作者: WenSky (橡皮擦) 看板: TransCSI 標題: Re: [問題] 元智83年考古 時間: Tue Jun 28 01:28:55 2005 ※ 引述《E9E7 (early!)》之銘言: : 我的見解是這樣 : 用row major下來算 : 這裡的a,還有(a+2)+3應該都是指"記憶體的位置" : 假使每個integer需要兩個cell來存的話 : 那麼(a+2)+3應該只的是第二個row還有第三個col(兩者皆從零開始數起) : 所以我想應該這麼算吧... : (a+2)=a + (2 * (5+1) + 3) * (2 Cell/int) : ^ ^^^ ^ ^每個integer需要兩個Cell : ^ ^^^ ^第三個column : ^ ^^^每個row都有六個column : ^再第二個row,表示跳過了兩個row(分別為第0還有第1row)了 : = 1000 + 15*2 = 1030 : 請指教^^" 謝謝!! 我也是這樣想的!! 但是你跟我最後一個地方還是不同.. 你是由row開始算 可是我是從column開始算 也就是說 ****** ****** ***@** ****** ****** (@是所問的)我是先把第一排column數完才數下一排 妳是先數row 而我的結果就是1036 這個二維陣列的東西感覺是很直觀的東西 帶公式感覺怪怪的@_@ 不過還是謝謝各位先輩的幫忙~~ <(_ _)> 不然我也不知道有這公式的存在 = = 但是解答是寫1026 再一個但是..但是這解答是"頗出名"的鍾天的書提供的.. (萬惡?) 有人可以很確定的告訴我正確答案是什麼嗎? 不想存有一絲疑惑去應考.. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.224.203.113 ※ 編輯: WenSky 來自: 61.224.203.113 (06/28 03:10)
hicoy:1026是用C的ARRAY算的140.121.140.134 06/28
hicoy:int a[4][5]表ROW有4個COL有5個140.121.140.134 06/28
> -------------------------------------------------------------------------- < 作者: hhg4092 (losy connect) 看板: TransCSI 標題: Re: [問題] 元智83年考古 時間: Tue Jun 28 10:24:47 2005 ※ 引述《WenSky (橡皮擦)》之銘言: : ※ 引述《E9E7 (early!)》之銘言: : 也就是說 ****** : ****** : ***@** : ****** : ****** (@是所問的)我是先把第一排column數完才數下一排 妳是先數row : 而我的結果就是1036 : 這個二維陣列的東西感覺是很直觀的東西 : 帶公式感覺怪怪的@_@ 不過還是謝謝各位先輩的幫忙~~ <(_ _)> : 不然我也不知道有這公式的存在 = = : 但是解答是寫1026 : 再一個但是..但是這解答是"頗出名"的鍾天的書提供的.. (萬惡?) : 有人可以很確定的告訴我正確答案是什麼嗎? : 不想存有一絲疑惑去應考.. rom=start+((r-1)*c+c-1)*c 這個公式中的減1是假設一開始是(1,1),.. 如不減一的話就是從(0.0)開始... 1,1 1,2 1,3 2,1 2,2 2,3 ...還是要看題目有沒有給起始是0,0還1,1.. 像我之前解就是用1,1的方式去解 如果平常沒說..那應該是用0,0 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.162.118.245
WenSky:用0 0沒錯 59.112.239.58 06/28
> -------------------------------------------------------------------------- < 作者: hicoy () 站內: TransCSI 標題: Re: [問題] 元智83年考古 時間: Tue Jun 28 12:04:22 2005 ※ 引述《WenSky (橡皮擦)》之銘言: : 定義int a[4][5] : 若a=1000 : 問(a+2)+3 = ? : (a)1024 (b)1026 (c)1028 (d)1030 (e)1036 : 請各位幫忙一下 請附解說 謝謝 po一下我的想法 如果是以C來宣告的話 int a[4][5]的圖應該是這樣 ***** ***** **@** ***** 我是以row為主來計算(之前好像有聽說80X86是以ROW來編排ARRAY的不過我不確定) (a+2)+3應該是第3個ROW的第3個 所以應該是1000+2*(5*2)+3*2=1026 我想原PO說解答給的答案應該是這樣算的 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.121.213.170
E9E7:恩,應該是這樣,我一時粗心了^^" 61.231.27.136 06/28
WenSky:正確 謝謝 59.112.239.58 06/28