看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: Win10, Linux, ...) Dev c++ 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 大家好 小弟最近在做liked list練習 跟陣列比較不一樣的是陣列可以要檢查特定的資料可以用for迴圈一個一個挑 但是linked list好像不行 下面那段function我想讓x^1和x^0分別印為x和不印 以及係數若為1也不印出來 但是我在if(tmp==p->pNext)裡又加了if..else if..else結構 雖然感覺笨笨的 但應該會正確執行 結果可以執行 但執行後卻永遠跑不完 數字也不太對 請問是為甚麼呢 餵入的資料(Input): 1x^4+2x^3+3x^1+4x^0 預期的正確結果(Expected Output): x^4+2x^3+3x+4 錯誤結果(Wrong Output): 跳出一大堆數字 且一直跑不完 程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔) https://ideone.com/r0zGNM 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.235.34.56 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1609640318.A.696.html ※ 編輯: huhunhiaccc (36.235.34.56 臺灣), 01/03/2021 10:20:04
nh60211as: 你一開始就tmp=p->pNext了,之後怎麼比都會是true 01/03 10:27
nh60211as: 啊,抱歉當我沒說 01/03 10:27
poolongkong: 把整個程式碼貼到網站再丟上來應該比較好幫忙 不然 01/03 11:37
poolongkong: 我也滿疑惑為什麼要 tmp = p->pNext 理論上傳進來的 01/03 11:37
poolongkong: p 應該是 head 吧 或是只能猜你的 p 是假的 head 01/03 11:37
好 我用用 ※ 編輯: huhunhiaccc (36.235.34.56 臺灣), 01/03/2021 13:02:51 ※ 編輯: huhunhiaccc (36.235.34.56 臺灣), 01/03/2021 13:19:21
poolongkong: 為什麼第 29 行分配了記憶體可是不使用 反而在第 30 01/03 13:35
poolongkong: 行又分配一次才使用 01/03 13:35
poolongkong: 理論上資料會從第一個 node 開始存 不會從第二個 除 01/03 13:37
poolongkong: 非你有什麼特殊的用途或理由 01/03 13:37
poolongkong: 啊 忘記回文中的問題 你並沒有對 exp 做任何判斷 所 01/03 13:48
poolongkong: 以當然做不到你要的事 01/03 13:48
huhunhiaccc: 因為我把第一個分配的當成head 所以第30行才是幫新增 01/04 00:58
huhunhiaccc: 的資料新增一個記憶體,我試過在while裡加入If else 01/04 00:58
huhunhiaccc: if..if 來判斷exp不過跑出無限迴圈的結果... 01/04 00:58
firejox: 你是不是大括號沒加 01/04 01:06
LPH66: 提一下上面有人問的假頭問題, 這其實是有些 linkedlist 的 01/04 08:38
LPH66: 設計...風格? 吧, 就是用一個假頭去取代可能會變動的頭指標 01/04 08:39
alan23273850: 這種東西就是自己 debug 才有趣味,用紙筆 case by 01/04 09:22
alan23273850: case 討論,數學歸納法論證。 01/04 09:22