我在使用Pep / 8装配程序生成正确的输出时遇到问题。目标是输入一个数字 n ,然后输入 n 数字,然后输出将第一个数字放在数组的末尾。输入和正确输出的示例如下:
“三个数字,其中1,2和3在数组中。” 输入: 3 1 2 3
“数组中的第一个数字1位于数组的末尾。” 正确输出: 2 3 1
我的输入和输出是:
输入: 3 1 2 3 输出错误: 2 2 1 期望输出: 2 3 1
输入: 4 1 2 3 4 输出错误: 2 3 3 1 期望输出: 2 3 4 1
输入: 5 1 2 3 4 5 输出错误: 2 3 3 4 1 期望输出: 2 3 4 5 1
我的汇编代码的三个部分可以在以下位置看到: http://militarystudents.files.wordpress.com/2009/11/pic1of3.png http://militarystudents.files.wordpress.com/2009/11/pic2of3.png http://militarystudents.files.wordpress.com/2009/11/pic3of3.png
n = 1且n = 2的输出正确。对于 n > 2输出似乎重复了我输入的一部分。我正在使用全局数组列表。任何信息将不胜感激。
答案 0 :(得分:2)
我不知道PEP8,但是,我可以从您发布的信息中说出一些内容:
这不是Pascal的三角形,没有任何东西被加在一起,因为输出没有新的(更大的)值,它们只是错误顺序的输入值的副本&计数。
这似乎是您实现列表轮换算法的错误。不知道PEP8,我不知道错误是什么,但这是正确的算法:
一个。将列表(0)复制到tmp
B中。对于i = 1到N-1:
(1)将列表(i)复制到列表(i-1)
℃。将tmp复制到列表(N-1)
如果我猜错了,我会说它在步骤“B”中,因为看起来你的循环在它应该之前终止,所以后面的一个或多个值不是向前复制。