作者huhunhiaccc (chchch)
看板C_and_CPP
標題[問題] 連結串列條件判別問題
時間Sun Jan 3 10:18:36 2021
開發平台(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://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1609640318.A.696.html
※ 編輯: huhunhiaccc (36.235.34.56 臺灣), 01/03/2021 10:20:04
1F:→ nh60211as: 你一開始就tmp=p->pNext了,之後怎麼比都會是true 01/03 10:27
2F:→ nh60211as: 啊,抱歉當我沒說 01/03 10:27
3F:推 poolongkong: 把整個程式碼貼到網站再丟上來應該比較好幫忙 不然 01/03 11:37
4F:→ poolongkong: 我也滿疑惑為什麼要 tmp = p->pNext 理論上傳進來的 01/03 11:37
5F:→ 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
6F:推 poolongkong: 為什麼第 29 行分配了記憶體可是不使用 反而在第 30 01/03 13:35
7F:→ poolongkong: 行又分配一次才使用 01/03 13:35
8F:→ poolongkong: 理論上資料會從第一個 node 開始存 不會從第二個 除 01/03 13:37
9F:→ poolongkong: 非你有什麼特殊的用途或理由 01/03 13:37
10F:推 poolongkong: 啊 忘記回文中的問題 你並沒有對 exp 做任何判斷 所 01/03 13:48
11F:→ poolongkong: 以當然做不到你要的事 01/03 13:48
12F:→ huhunhiaccc: 因為我把第一個分配的當成head 所以第30行才是幫新增 01/04 00:58
13F:→ huhunhiaccc: 的資料新增一個記憶體,我試過在while裡加入If else 01/04 00:58
14F:→ huhunhiaccc: if..if 來判斷exp不過跑出無限迴圈的結果... 01/04 00:58
15F:→ firejox: 你是不是大括號沒加 01/04 01:06
16F:推 LPH66: 提一下上面有人問的假頭問題, 這其實是有些 linkedlist 的 01/04 08:38
17F:→ LPH66: 設計...風格? 吧, 就是用一個假頭去取代可能會變動的頭指標 01/04 08:39
18F:推 alan23273850: 這種東西就是自己 debug 才有趣味,用紙筆 case by 01/04 09:22
19F:→ alan23273850: case 討論,數學歸納法論證。 01/04 09:22