作者asps5711 (shysfeeling)
看板C_and_CPP
標題[問題]
時間Tue Nov 26 08:26:35 2019
開發平台(Platform): (Ex: Win10, Linux, ...)
Win 10
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
Dev C++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
無
問題(Question):
試著寫了一下,目前的困難點在手動輸入資料之後,不知如何把前置點儲存到另一個陣列
中。
餵入的資料(Input):
http://codepad.org/0Fjsx4hz
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
補充說明(Supplement):
前次po文沒附程式檔被刪文,會再留意,謝謝版大提醒
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.137.84.49 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1574727997.A.663.html
※ 編輯: asps5711 (101.137.84.49 臺灣), 11/26/2019 08:27:50
1F:推 wargods8402: 請問前置點 是指? 11/26 12:03
2F:→ asps5711: 起始點的意思 11/26 12:32
3F:推 wargods8402: 那你的起始點是哪幾筆資料...? 11/26 13:00
4F:→ asps5711: 123 134 145 245 256 356等7段線,第一位數是起始點、 11/26 13:53
5F:→ asps5711: 第二位數是終點、第三位數是起始點到終點的距離 11/26 13:53
6F:推 wargods8402: 所以是想計算最短路徑嗎? 11/26 14:21
7F:→ asps5711: 是要把圖存到電腦裡;最短路徑也是後面要寫的程式,想 11/26 15:14
8F:→ asps5711: 說一步步來解決 11/26 15:14
9F:→ wargods8402: 所以你要把每個線段的起始點,另存至另外的陣列嗎? 11/26 15:30
10F:→ wargods8402: 如果是的話,你的程式中就有解法了 11/26 15:30
11F:→ asps5711: 我一開始就有用一個陣列儲存起始點喔,現在是要把起始點 11/26 18:11
12F:→ asps5711: 用前星法來儲存。還是您有發現什麼是小弟疏漏的嗎?懇 11/26 18:11
13F:→ asps5711: 請指點迷津 11/26 18:11
14F:→ wargods8402: 抱歉...前向星我不會...我以為你只是要陣列轉存而已. 11/27 22:27
15F:→ wargods8402: .. 11/27 22:27
16F:推 suhorng: 另外開一個陣列紀錄邊從哪一個索引開始 11/28 17:19
17F:→ suhorng: 然後換到下一個起始點的時候就知道下一個點的邊開始位置 11/28 17:20
18F:→ suhorng: int start[]; 11/28 17:20
19F:→ suhorng: start[1]=0; 11/28 17:20
20F:→ suhorng: for(i = 0; i < count; i++){ 11/28 17:21
21F:→ suhorng: if(e1[i] != e1[i+1]){ 11/28 17:21
22F:→ suhorng: diff_num++; 11/28 17:21
23F:→ suhorng: start[diff_num-1]=i+1 11/28 17:22
24F:→ suhorng: } 11/28 17:22
25F:→ suhorng: } 11/28 17:22
26F:→ suhorng: 這樣每個點 k 的邊就是從 start[k] 到 start[k+1]-1 11/28 17:23