作者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/cn.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