PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 其他群組 > 七嘴八舌異言堂
帳戶
密碼
 

  回應
 
主題工具
@"@
*停權中*
 

加入日期: Aug 2013
文章: 77
引用:
作者以月為影
m2在比較和輸出的時候各減1一次, 所以輸出1

其他不用解釋了吧

程度很潛不懂

PRINT2 (MAX(m1++,--m2),m1,m2);
為什麼是再減一
     
      
舊 2015-05-06, 03:05 PM #31
回應時引用此文章
@"@離線中  
aei
Basic Member
 

加入日期: Jan 2013
文章: 20
引用:
作者@"@
程度很潛不懂

PRINT2 (MAX(m1++,--m2),m1,m2);
為什麼是再減一


MAX(m1++,--m2)
代進去後,變成.
((m1++)<(--m2) ?(--m2) : (m1++))

--m2做了兩次.
 
舊 2015-05-06, 03:08 PM #32
回應時引用此文章
aei離線中  
@"@
*停權中*
 

加入日期: Aug 2013
文章: 77
引用:
作者aei
MAX(m1++,--m2)
代進去後,變成.
((m1++)<(--m2) ?(--m2) : (m1++))

--m2做了兩次.

感恩

有你這一寫,我感覺自己很笨

此文章於 2015-05-06 03:17 PM 被 @"@ 編輯.
舊 2015-05-06, 03:12 PM #33
回應時引用此文章
@"@離線中  
A級黑豬肉
Advance Member
 

加入日期: Apr 2004
您的住址: 楓葉國
文章: 316
引用:
作者LVKRMD
後加是要在哪時候加


y = 1;
log(y++);
log(y);
log('------------');
y = 1;
log(++y);
log(y);

會顯示
1
2
------------
2
2
舊 2015-05-06, 08:16 PM #34
回應時引用此文章
A級黑豬肉離線中  
rockindy
Major Member
 

加入日期: Nov 2001
文章: 170
引用:
作者@"@
再來一題
#define MAX (a,b) (a<b ?b:a)
#define PRINT1(x) printf("%d",x)
#define PRINT2(x,y,z) PRINT1(x),PRINT1(y),PRINT1(z)


int m1=1,m2=3;
PRINT2 (MAX(m1++,--m2),m1,m2);

這個怎樣看


不負責推演:

PRINT2 (MAX(m1++,--m2),m1,m2);

PreProcessing:
=> PRINT1(MAX(m1++, --m2)), PRINT1(m1), PRINT1(m2);
=> printf("%d", MAX(m1++, --m2)), PRINT1(m1), PRINT1(m2);
=> printf("%d", m1++ < --m2 ? --m2 : m1++), PRINT1(m1), PRINT1(m2);
=> printf("%d", m1++ < --m2 ? --m2 : m1++), printf("%d", m1), printf("%d", m2);

Executing
=> printf("%d", 1 < 2 ? 1 : 2), printf("%d", 2), printf("%d", 1);
=> 121

此文章於 2015-05-06 09:20 PM 被 rockindy 編輯.
舊 2015-05-06, 09:15 PM #35
回應時引用此文章
rockindy離線中  
rockindy
Major Member
 

加入日期: Nov 2001
文章: 170
引用:
作者@"@
再來一題
#define MAX (a,b) (a<b ?b:a)
#define PRINT1(x) printf("%d",x)
#define PRINT2(x,y,z) PRINT1(x),PRINT1(y),PRINT1(z)


int m1=1,m2=3;
PRINT2 (MAX(m1++,--m2),m1,m2);

這個怎樣看


不負責推演:

PRINT2 (MAX(m1++,--m2),m1,m2);

PreProcessing:
=> PRINT1(MAX(m1++, --m2)), PRINT1(m1), PRINT1(m2);
=> printf("%d", MAX(m1++, --m2)), PRINT1(m1), PRINT1(m2);
=> printf("%d", m1++ < --m2 ? --m2 : m1++), PRINT1(m1), PRINT1(m2);
=> printf("%d", m1++ < --m2 ? --m2 : m1++), printf("%d", m1), printf("%d", m2);

Executing
=> [m1=1, m2=3] printf("%d", 1 < 2 ? --m2 : m1++), printf("%d", m1), printf("%d", m2);
=> [m1=2, m2=2] printf("%d", --m2), printf("%d", m1), printf("%d", m2);
=> [m1=2, m2=1] printf("%d", 1), printf("%d", 2), printf("%d", 1);
=> 121
舊 2015-05-06, 09:30 PM #36
回應時引用此文章
rockindy離線中  
silent
Major Member
 

加入日期: Dec 2012
文章: 182
引用:
作者X19-TypeIII
x+=y+++--z 應該要這樣拆~

z = z - 1
x = x + (y + z)
y = y + 1

言簡意賅∼
舊 2015-05-06, 09:31 PM #37
回應時引用此文章
silent離線中  
yanlin
*停權中*
 

加入日期: May 2001
文章: 1,172
應該是212?
舊 2015-05-06, 10:01 PM #38
回應時引用此文章
yanlin離線中  


    回應


POPIN
主題工具

發表文章規則
不可以發起新主題
不可以回應主題
不可以上傳附加檔案
不可以編輯您的文章

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



所有的時間均為GMT +8。 現在的時間是10:08 PM.


vBulletin Version 3.0.1
powered_by_vbulletin 2025。