开发平台(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:00107, 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 在同堆也会出错吧而且你弄错其他三种指令的意义了, 重读一次题目...
作者: aelin 2014-10-27 22:03:00
我测 19 pile 2 onto 0 quit 就Segmentation fault了
作者:
scwg ( )
2014-10-28 07:03:00→ scwg: 而且你弄错其他三种指令的意义了, 重读一次题目...