Pascal将int读入数组

时间:2012-09-28 17:44:46

标签: arrays user-input pascal

我只是在学校学习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

这有意义吗?我只需要一点帮助就能理解为什么会发生这种情况,我会被困在这里。

1 个答案:

答案 0 :(得分:1)

正如你的问题的评论所指出的那样,当你没有发布的代码几乎肯定是问题时,找到错误是有点困难的。尽管如此,有一些明显的问题

  1. 循环之前读取'input'。输入'while'循环取决于'input'的初始值;我想你假设它的初始值是0,但它可能是一个带负值的垃圾数字。
  2. 'index ++'不是Pascal语法,而是C.这应该是'inc(index)'。
  3. 不是在第一个循环后写'input:= 0',而应该是'index:= 0'。
  4. 我想在第一个'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;