電腦一小段C程設 - 電腦Olivia · 2015-05-13Table of ContentsPostCommentsRelated Posts#includeintmain(){intnum1=123;intnum2=456;intnum3=789;if(num3>num2>num1)printf("yes");elseprintf("no");return0;}想請問為何最後輸出為"NO"?但如果If條件式中只有兩變數比較就會printf:yes。。謝謝...Showmore電腦All CommentsBennie2015-05-17板大可以在程式當中加入printf("%d\n",num3>num2);printf("%d\n",num3num2>num1是由左到右執行num3>num2的執行結果是true也就是1接著電腦會拿num3>num2的結果(也就是1)與num1做比較所以1>num1的結果為false也就是0所以最後會輸出no2015-05-1414:58:26補充:@_@true這個關鍵字的值本來就是1>這個運算子的傳回Andy2015-05-17我記得DennisRichie有跟我說過為了避免有人寫((a==b)==(c==d))而產生困擾他提議了:==1false==0我還沒看過編譯器的實做設定不是1的過2015-05-1507:07:50補充:我想UFO誤會我的意思.我是說所有的邏輯操作員==!=>>=...等等都會保證回{0,1}連!0都是一樣只有醬,才可以保證(a>b)==(c>d)的正確所以:if(a==b)++c;也有人寫成c+=Olive2015-05-171.這程式碼最後的輸出結果不一定是"no",事實上會依據編譯器的實做而可能會是"yes"。雖說大部分的編譯器幾乎都會執行為"no"的結果,但我們仍稱這個結果為"不可預期的"。2.你這樣寫,編譯器都沒有抱怨一下嗎?2015-05-1301:55:28補充:不要教壞小朋友!num3>num2的執行結果是true,Related PostsCree跟Ultrafire這兩個廠牌顯示卡裝了之後不能使用電腦規格升級GTAV電腦配備電腦組裝相關疑問(CPU、APU、顯示卡、螢幕、ATX)
All Comments