Re: [問題] 程式解題

看板Prob_Solve作者 (Joseph Arser)時間16年前 (2007/10/23 01:16), 編輯推噓4(402)
留言6則, 4人參與, 最新討論串2/2 (看更多)
※ 引述《xxyy (hey)》之銘言: : 下列程式如果參數傳遞的方法為Call by address 其輸出結果為何 : Sub (x,y,z) main () : {x=y+z; {a=1; b=2;c=3 : {y=z-x } call sub(a,b,a+c) : print (a,b,c);} : 為何答案(x,y,z)=(6,-2,3) : 不知有沒有po錯板 @@ : 我是三類組的門外漢 : 請高手解答 首先宣告a = 1 , b = 2 , c = 3 因為 call sub( a , b ,a+c ) => Sub( x , y , z ) 所以在 Sub 函式中 x = a = 1 y = b = 2 z = a + c = 4 接下來 x = y + z 意思是將 x 指定y + z 的值 所以 x = y + z = 2 + 4 = 6 此時 x 已經改變值為 6 所以下一行 y 也是同理指定z - x 的值 y = z - x = 4 - 6 = -2 Sub函式結束後 x = 6 , y = -2 , z = 4 如有錯還請其他高手不吝指教 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.121.213.170

10/24 01:27, , 1F
大大解的真好 不過z在過程中沒被改過所以仍然是3
10/24 01:27, 1F

10/24 01:29, , 2F
看錯了 把z搞成c sorry
10/24 01:29, 2F

10/25 11:40, , 3F
因為你最後是print(a,b,c)在sub沒改到z...所以c還是3沒錯
10/25 11:40, 3F

10/25 14:17, , 4F
不然你應該將print(a,b,c)->print(x,y,z)並改寫在sub內
10/25 14:17, 4F

10/26 03:30, , 5F
好想砍喔, 可是 t大已經回文了 @@
10/26 03:30, 5F

10/26 20:19, , 6F
如果不符合版規...就刪吧@@...回了才看到版規...囧>
10/26 20:19, 6F
文章代碼(AID): #177Di2Zb (Prob_Solve)
討論串 (同標題文章)
本文引述了以下文章的的內容:
問題
3
5
完整討論串 (本文為第 2 之 2 篇):
問題
3
5
文章代碼(AID): #177Di2Zb (Prob_Solve)