→ allyusd: 可以直接在 ideone 執行,但是沒有解決你任何問題11/21 16:44
→ allyusd: 傳址看起來是正確的,K 後面多餘的刪除了。11/21 16:45
→ allyusd: 也許你需要提供一下 開發平台(Platform) 相關資訊?11/21 16:46
謝謝您 !
請問一下是怎麼整理的呀
像我知道JAVA Eclipse 可以ctrl+F
抱歉其實我不知道開發平台是什麼
是作業系統或是IDE嗎?
是WIN7 Dev5.8.2
※ 編輯: defsrisars (1.168.68.183), 11/21/2014 16:47:35
→ allyusd: 我說的整理實際是把多餘的 code 註解掉啦 XD11/21 16:55
→ allyusd: 我用 VS 2013 測試,沒用過 Dev,請其它人幫忙看看吧11/21 16:56
好的~謝謝大大
請問您用VS2013也會跟我一樣沒辦法做修改嗎?
像我在Getcard的 229.237.245行讓a->Case = 1;
然後return;
跳回330行
但是331行卻不會執行.(printf過問題如上方所述 Getcard中為1 函式結束回來仍是0)
(我確定test時有跳進三個if的其中之一,上方敘述都有做~就是存值存不進原本的a.Case)
此外繼續做下方電腦得牌(Player B)時
電腦的point也進不去(都是printf出0.0)
但是我前方Player A一樣的寫法
Point卻可以被做修改
為什麼會這樣啊QQ
※ 編輯: defsrisars (1.168.68.183), 11/21/2014 16:59:45
※ 編輯: defsrisars (1.168.68.183), 11/21/2014 17:01:13
※ 編輯: defsrisars (1.168.68.183), 11/21/2014 17:04:54
推 allyusd: 沒有耶,我測試的結果一切正常,所以沒辦法幫你11/21 17:17
→ allyusd: 對了,我有對 scanf 做了修改,不知道有沒有影響11/21 17:18
我剛剛嘗試抓新的IDE (CODE BLOCK) 結果可以了=___=
這是IDE的問題的意思嗎QAQ
※ 編輯: defsrisars (1.168.68.183), 11/21/2014 17:32:12
→ carylorrk: 的確有可能是 Compiler 太舊的問題~11/21 18:58
好的嗚嗚
推 KoenigseggG: Orwell Dev-C++?11/22 00:15
是的~
我以後學習使用code block好了= =
11/22 09:18
推 LPH66: 我仔細看了一下, 你在 Getcard 裡讀輸入的方法很危險11/22 09:31
→ LPH66: temp 只有一個字元的大小, 你卻讀一個 %s 進去11/22 09:31
→ LPH66: 這代表一定有什麼東西被讀進來的"字串"的結尾'\0'給吃掉了11/22 09:32
→ LPH66: 你要不要改用 %c 或是把 temp 改宣告成字串試試看?11/22 09:33
→ LPH66: (雖然這跟你原來的問題似乎無關就是了)11/22 09:33
謝謝大大~~
這個問題我後來也真的遇到了
不知道為什麼這個scanf的動作
會影響到我紀錄戰績的array
我de了很久才發現
我的array一開始都有被存進W或L
一到那個scanf &temp
我的array就會被清空變成NULL
後來我爬文改用getchar(因為改%c也是遇到回車鍵問題)
一開始一樣又遇到
getchar(temp)被跳過
再爬文改寫成
getchar(); //這個好像是用來接回車鍵的
getchar(temp);
才成功
感謝大大的提出~
另外請問我原題目問的傳址寫法會很危險嗎?
因為我覺得函式回傳很綁手綁腳
所以我都傾向傳指標進去直接做修改
話說有人知道第二個問題怎麼辦嗎QAQ
最後一張牌的bug我還是de不掉QAQ
※ 編輯: defsrisars (1.168.68.183), 11/22/2014 09:38:31
※ 編輯: defsrisars (1.168.68.183), 11/22/2014 09:40:29
※ 編輯: defsrisars (1.168.68.183), 11/22/2014 09:44:39
推 LPH66: 嗯, 這邊就是被那個'\0'蓋掉的就是你那個陣列11/22 09:44
是因為記憶體存放的關係嗎
為什麼temp的\0會蓋到陣列裡的值呀
※ 編輯: defsrisars (1.168.68.183), 11/22/2014 09:45:29
→ LPH66: 至於傳址的部份我稍微看了一下應該是沒什麼問題11/22 09:45
→ LPH66: 或者該說這種做法在 C 裡很普遍所以會有問題我也覺得很怪..11/22 09:46
→ LPH66: >修文問題 確實是編譯器對變數存放位置的關係11/22 09:47
→ LPH66: 除非你深入追下去不然不會知道編譯器怎麼排的11/22 09:47
→ LPH66: 所以最正確的做法就是不要超界11/22 09:48
好的~
謝謝您的回覆
因為我還很蔡逼八QAQ
所以都是想到什麼寫什麼
(像這個10點半應該有更簡潔有力的寫法)
然後很多寫的方式自己都不知道好不好或是正不正確、危不危險
有些地方也是爬文跟著寫其實自己也不太懂
像牌組的洗牌跟第二個問題的地方就不是我的想法
最怕的還是自己不知不覺用了很危險的寫法吧XD
那請問code block好嗎?
我只知道Dev很舊= =
※ 編輯: defsrisars (1.168.68.183), 11/22/2014 09:52:21
推 n91324: 去抓mingw 用GNU最新的編譯器11/22 16:18
好的
謝謝大大給我方向
我去研究一下
※ 編輯: defsrisars (1.168.68.183), 11/22/2014 16:40:10
推 KoenigseggG: dev很舊,但Orwell dev應該很新吧0.0 11/22 21:16
→ KoenigseggG: 前幾天才出最新版而已 11/22 21:16
我也是這樣想的
所以才都用新版的Orwell
(學校都還在4.9.2
我也都用隨身碟帶免安裝去寫
沒想到5.8.2了還是遇到問題1的問題
換code block也真的就好了
哭哭
※ 編輯: defsrisars (1.168.68.183), 11/23/2014 02:10:36
→ KoenigseggG: 嗯嗯 加油XD 11/23 10:29