我只是在学校学习Pascal,在我的任务中遇到了一个奇怪的问题。
我需要做的是创建两个数组,然后读入第一个数组的整数,直到读取10个数字或读取负数,然后使用相同的规则移动到第二个数组。
我知道所有工作正常,除了第二个数组中的第一个数字总是搞砸了。 -1似乎总是被复制到数组2索引1。
我无法提供大量代码,因为这是一项任务,但它是这样的:
while input >= 0 and index < 10 do
begin
read(input);
array1[index] := input;
index++
end;
input:= 0; //to reset it
another while loop but for list2...
如果我输入array1 1,2,3,-1和array2 1,2,3,4,-1,我的输出将是这样的:
list 1: 1 list 2: -1
list 1: 2 list 2: 2
list 1: 3 list 2: 3
list 1: -1 list 2: 4
这有意义吗?我只需要一点帮助就能理解为什么会发生这种情况,我会被困在这里。
答案 0 :(得分:1)
正如你的问题的评论所指出的那样,当你没有发布的代码几乎肯定是问题时,找到错误是有点困难的。尽管如此,有一些明显的问题
我想在第一个'while'循环之后的代码应该是
index:= 0;
readln (input);
while (input >= 0) and (index < 10) do
begin
inc (index);
array2[index]:= input;
readln (input) // there is no need for a semicolon before 'end'!
end;