[問題] 判斷式疑問
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
DEV C++
問題(Question):
判斷式得結果和預期不符
餵入的資料(Input):
mit
dartmouth
程式碼:
// 以下為初使值
//nInf= 十進位輸出 16777215; nNodeCnt = 0; aIdHash[0~25] = {nInf};
for (string strName; cin >> strName;) {
...
nF = (aIdHash[nF] = (aIdHash[nF] == nInf) ? nNodeCnt++ : aIdHash[nF]);
cout<<"nF: "<<nF <<" aIdHash[nF]: "<<aIdHash[nF]<<" nNodeCnt: "<<nNodeCnt<<endl;
nL = (aIdHash[nL] = (aIdHash[nL] == nInf) ? nNodeCnt++ : aIdHash[nL]);
cout<<"nL: "<<nL <<" aIdHash[nL]: "<<aIdHash[nL]<<" nNodeCnt: "<<nNodeCnt<<endl;
...
}
如輸入 mit
會顯示
nF: 0 aIdHash[nF]: 16777215 nNodeCnt: 1
nF: 1 aIdHash[nF]: 16777215 nNodeCnt: 2
按照我的理解 A = B = C , AB會被C的值蓋掉
回到程式碼 nNodeCnt 做完才會++...
所以大家都應該被洗成 0 做完要輸出的時候 nNodeCnt 自己++
所以預期結果 三個數值應該是 0,0,1...
為什麼 aIdHash[nF] 沒有被洗成 0 呢?
完整程式碼:
http://pastie.org/6114254
補充說明:
uva online judge 117
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 36.230.50.156
※ 編輯: coal511464 來自: 36.230.50.156 (02/11 12:44)
※ 編輯: coal511464 來自: 36.230.50.156 (02/11 12:44)
→
02/11 19:14, , 1F
02/11 19:14, 1F
→
02/11 21:27, , 2F
02/11 21:27, 2F
→
02/12 11:58, , 3F
02/12 11:58, 3F
→
02/12 12:07, , 4F
02/12 12:07, 4F
→
02/12 13:25, , 5F
02/12 13:25, 5F
→
02/12 13:30, , 6F
02/12 13:30, 6F
→
02/12 16:09, , 7F
02/12 16:09, 7F
→
02/12 18:22, , 8F
02/12 18:22, 8F
→
02/12 23:21, , 9F
02/12 23:21, 9F
→
02/14 14:11, , 10F
02/14 14:11, 10F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章