作者yantchen (球童Yanting)
看板NTUE-CS101
標題Re: [課業] C++
時間Mon Nov 10 21:24:03 2008
: Q: 請寫出下面程式碼顯示在螢幕上的結果
: int i=10,j=5;
: cout<<i*j-++i;
: cout<<i;
: 答案是 3911 喔 ( 沒有 endl 所以不換行 )
: 程式碼由左往右讀
: i*j-++i; ( i=10,j=5 )
: 10*5-++i; ( i=10,j=5 )
: 50-++i; ( i=10,j=5 )
: 50-i; ( i=11, j=5 )
: 39; ( i=11, j=5 )
囧
DEV C++ ( G++ ) 跑出來的結果是 3911
Visual C++ 跑出來的結果是 4411
Dev 的想法是我上面打的那個
Visual C++ 的想法是
cout<<i*j-++i;
先做++i
i*j-i ( i=11, j=5 )
11x5-11 = 44
嗯 .. 這題算爭議題 ... 王老大考出來的話我會叫他兩個都給對 ︿( ̄︶ ̄)︿
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.68.15.209
推 linjrming:++應該優先權在乘法前面 所以4411也許是較正確解 11/10 21:32
→ yantchen:其實這種語法 筆試才會考 一般寫程式會盡量避免吧 11/10 21:40
推 linjrming:這種題目說實在的也沒有什麼意義 11/10 21:46
→ linjrming:不同的編譯器有不同的規則 11/10 21:46
→ yantchen:謝謝毛妹提醒 課本p4-9的那個程式也是dev/vc會跑不同結果 11/10 23:36
推 feather427:今晚再一次謝謝學長!! :D 超好的哈哈哈哈哈哈 11/11 00:46
→ rockmyangel:謝謝學長 我考得不錯喔 11/18 15:58