看板 Soft_Job 關於我們 聯絡資訊
請問下列程式: int i=3,j=5; (1) if(i=2||j=4){ printf(%d,i); printf(%d,j); <--output: i=2, j=5 } (2) if(i==2||j==4){ printf(%d,i); printf(%d,j); <--output: 條件不成立,不印出訊息 } (3)if(i==2||j=4){ printf(%d,i); printf(%d,j); <--output: i=3, j=4 } (4)if(i=2 && j=4){ printf(%d,i); printf(%d,j); <--output: i=2, j=4 } (5)if(i==2 && j==4){ printf(%d,i); printf(%d,j); <--output: 條件不成立,不印出訊息 } ================================================================ #各位強者大大~上述5小題,我只能了解(2)和(5)~ 但是(1)(3)(4)這幾題~用指定運算子或指定與關係運算子混用的條件式, 我就搞不懂他的邏輯是啥~為何會output出那種結果.... 麻煩大大賜教解惑...謝謝喔咪! [PS.好怪!條件式不是應該由關係運算子構成嗎??怎麼有指定運算子這種的咧??] -- ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 編輯: superman999 來自: 118.171.32.136 (10/30 15:03)
TonyQ:有assignment 的是用 assign 完之後的值是 0 或非0判斷 10/30 15:08
TonyQ:不過基本上除非有特別理由,正常在寫不建議這樣寫。 10/30 15:08
leo60037:i=n,n給值後,n非0則true. ||前面成立就直接進入if 10/30 15:10
superman999:所以題(3)若改成if(i==3||j=4),輸出會是i=3,j=5 ??? 10/30 15:14
Assyla:嗯,||前面成立,後面的運算式就不會處理,是種陷阱題 10/30 15:17
shadow0326:我覺得c/c++板說明的已經很清楚了 @_@ 10/30 15:29
james732:C++板大家都願意教你,結果你就這樣轉過來 10/30 15:51
james732:感覺還真像是被耍了呢。 10/30 15:51
Assyla:感覺像是不會寫程式的人,想去考資訊類的公職 10/30 15:54
leiyan:這判斷式編譯怎會過的@@ 10/30 16:22
leav:噓專板專用 10/30 16:23
Ageis:會過啊,只是正常不會這樣寫,所以判斷式常數最好在左邊 10/30 16:25
leiyan:阿 我知道了 他少了() 10/30 16:32
superman999:j大在氣什麼?因為我仍不太懂~想廣納高見激勵腦腺增長~ 10/30 16:39
littlethe:真有趣的問題,雖然自己不可能這樣寫,但也多了小知識 10/30 16:41
superman999:分享給其他大大動動腦;怎麼這樣就罵我耍你??不懂&=.=& 10/30 16:42
ayumiayayaai:在C/C++版的推文已經回答很清楚了 只能說妳根本不懂C 10/30 16:42
superman999:我不懂的是~"n非0則true. ||前面成立就直接進入if"~ 10/30 16:45
superman999:這個怪現象是純粹適用條件式為指定運算子構成者~ 10/30 16:46
superman999:還是即使條件式是關係運算子者亦適用?? 10/30 16:47
akasan:這不叫怪現象叫你書讀不夠熟... 10/30 16:55
yangyr:多看點書多寫點程式可以嗎? 這應該是很基本的東西.. 10/30 16:57
superman999:o(><;)o o o(><;)o o o(><;)o o 10/30 16:57
final01:還好~算是基本題的變形 也算有陷阱 10/30 17:26
latw:這不是某些公司面試的考題嗎??? 10/30 18:03
leiyan:反正題目少了()就錯很大了 此題送分 10/30 18:08
zxcv4321:這學校101就會了吧 公司要考這種? 哪間? 10/30 18:08
latw:去過不少公司面試會考這種,只是考這種真的很無聊,測不出程度 10/30 18:13
latw:但是至少可以先刷掉完全不會寫程式的人,不過要刷這種人也不需 10/30 18:14
latw:要這種題目.... 10/30 18:14
latw:最近還很流行考1+2+..+100不可以用for, while, 十行內KO ... 10/30 18:16
leiyan:那樣是考背公式嗎? 10/30 18:18
savealone:說真的,還滿多大公司愛考這種題目 10/30 21:10
fatb:C++的定義是非0為T 0為F ; ||為OR運算子 有個T結果就只能是T 10/30 21:26
johnnywind:latw大 那遞迴可以嗎? 10/30 22:23
marcusmiller:請問latw不用遞迴是數學算式對吧?@@ 10/30 22:40
zxcv4321:這種題目連國考跟大企業都不屑考阿 到底哪間有考? 10/30 22:45
ofese0207:上底加下底乘高除以2? 10/30 22:48
ofese0207:我想的太簡單了 = = 10/30 22:53
amozartea:cout<<5050; 有誰可以比我快... 10/30 23:10
amozartea:@latw 10/30 23:10
ofese0207:如果是1+到10000呢? 10/30 23:14
kavana999:觀念題...我相信你翻一翻螞蟻書會有收穫 10/30 23:18
Lordaeron:正常來說,沒幾個人會去哪樣子寫程式法, 會這樣寫的 10/31 00:00
Lordaeron:還故意弄出正確結果來的人, 可以直接fire掉. 10/31 00:00
Lordaeron:程式是寫來給人看的,不是寫來玩的,要玩什麼無聊的語法 10/31 00:01
Lordaeron:問題, 回去查書即可. 10/31 00:02
Lordaeron:寫程式, 是為了解決問題, 不是製造問題. 10/31 00:10
lucas01:正常人一看也知道這是測驗題吧 別coding到連基本思考都無 10/31 09:06
happy321:這種題目有意義嗎?還要考慮compile行為才能得出答案耶 10/31 12:00
shadow0326:我倒是常寫 if (ret = foo()) 這種程式碼...會被fire嗎 10/31 12:17
bobju:會出這種考題的公司,我才不屑面試. :P 10/31 12:18
bobju:糟蹋郎喔? 10/31 12:19
latw:我是去被考的人 我也不知道他要考啥 我丟完公式就繳卷啦XD 10/31 17:44
lepin2001:期中考到了。 10/31 22:18
hanbz:這不用期中考吧= =只有第一次小考的水準...超基礎... 11/02 12:02
cansas:這原PO...不是某版的名人嗎? 11/02 16:02