[問題] 沒執行if的判斷

看板C_and_CPP (C/C++)作者 (風花雪月)時間13年前 (2012/10/27 00:45), 編輯推噓4(408)
留言12則, 8人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Dev C++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 用if判斷兩個變數哪個大,較小的那個變數值會被較大的取代 但是卻不管怎樣值都會被取代 餵入的資料(Input): 11 13 9 20 15 預期的正確結果(Expected Output): Max=20 錯誤結果(Wrong Output): Max=15 程式碼(Code):(請善用置底文網頁, 記得排版) #include<iostream> using namespace std; int main(){ int m=0,n; for(int i=0;i<5;i++){ cout<<"Please Input 1 Number:"<<endl; cin>>n; if(m<n) m=n; cout<<"Max="<<m<<endl; } return 0; } 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.85.29.208

10/27 00:50, , 1F
cout<<"Max="<< m <<endl; ←這裡是不是該印出 m ?
10/27 00:50, 1F

10/27 00:51, , 2F
可是他m存的是最小的,也就是一開始的0...
10/27 00:51, 2F

10/27 00:52, , 3F
自己用手跑一次哪裡出問題應該很明顯
10/27 00:52, 3F

10/27 00:54, , 4F
你試著把輸入順序對調看看!!
10/27 00:54, 4F

10/27 00:54, , 5F
抱歉,剛剛改過程式碼,那裏沒改好,但問題依然存在
10/27 00:54, 5F
※ 編輯: dreamu 來自: 219.85.29.208 (10/27 00:54)

10/27 00:57, , 6F
IF的後面加上{m=n;}不要省略中誇號試試看
10/27 00:57, 6F

10/27 01:00, , 7F
g++ 4.4.3 正常,會不會是undefined behavier?
10/27 01:00, 7F
發現出現了很怪的現象,有時候是正常的(會正確找出最大值) 有時候會變成找出最小值(WTF...) 也有時候判斷到其中一個值時就不變了 ※ 編輯: dreamu 來自: 219.85.29.208 (10/27 01:02)

10/27 01:02, , 8F
重新compiler和build ??
10/27 01:02, 8F

10/27 01:04, , 9F
用C的語法寫就都是正常情況,不知道是不是開發軟體壞了QQ
10/27 01:04, 9F

10/27 01:08, , 10F
你要不要 cout<<n看看吃到的n是不是對的?
10/27 01:08, 10F

10/27 01:52, , 11F
visual studio 2012 正常地說
10/27 01:52, 11F

10/27 01:57, , 12F
未看先猜這裡的跟本來的 code 不一樣
10/27 01:57, 12F
文章代碼(AID): #1GYhuov1 (C_and_CPP)
文章代碼(AID): #1GYhuov1 (C_and_CPP)