[问题] ACM 101 - Runtime Error (已解决)

楼主: jammy50605 (小刀)   2014-10-26 02:47:49
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
Dev-C++
问题(Question):
自己测output没有问题,不晓得为什么一直出现Runtime Error...
喂入的资料(Input):
10
move 9 onto 1
move 8 over 1
move 7 over 1
move 6 over 1
pile 8 over 6
pile 8 over 5
move 2 over 1
move 4 over 9
quit
预期的正确结果(Expected Output):
0: 0
1: 1 9 2 4
2:
3: 3
4:
5: 5 8 7 6
6:
7:
8:
9:
程式码(Code):(请善用置底文网页, 记得排版)
http://codepad.org/YeGwKn8o (已加注解)
补充说明(Supplement):
问题:http://uva.onlinejudge.org/external/1/101.html
41~46行:应该会在这里读到quit出去循环
如果下一个是EOF
31行:while (scanf("%d",&block) != -1)
在这行应该就会结束程式了
作者: bluesoul (忙死你老爸)   2014-10-26 23:44:00
107, 108有问题,你clear已经free,又去使用他Node* temp = clear->next;free(clear);clear = temp;这样就可以
作者: scwg ( )   2014-10-27 05:57:00
你贴的改版没改到问题... tmp=clear 只复制了位址, 那块内存在 free(clear) 后就不能用了, tmp->next 跟 clear->next没有差别, 都是未定义行为. 改成 bluesoul 的作法试试看?仔细看了一下, aelin 说得可能是问题所在? line 89 只防pileover, 其他三种指令碰到 a b 在同堆也会出错吧而且你弄错其他三种指令的意义了, 重读一次题目...
作者: Killercat (杀人猫™)   2014-10-27 12:34:00
101画个流程图 难度马上减半
作者: aelin   2014-10-27 22:03:00
我测 19 pile 2 onto 0 quit 就Segmentation fault了
作者: scwg ( )   2014-10-28 07:03:00
→ scwg: 而且你弄错其他三种指令的意义了, 重读一次题目...

Links booklink

Contact Us: admin [ a t ] ucptt.com