为什么这段代码在Pascal中不起作用?

时间:2010-10-04 18:17:39

标签: arrays pascal

我有这个var:

var
 UserInput : array [1..3] of string;

我正在尝试一次设置多个值。

readln( UserInput[1], UserInput[2], UserInput[3] );

代码运行时,所有输入都存储在UserInput [1]

Ex.:
Input: 10 1.5 18

Result:
UserInput[1] = 10 1.5 18
UserInput[2] = 0
UserInput[3] = 0

我该怎么办?

2 个答案:

答案 0 :(得分:4)

定义为float或int而不是string:

Var
    myVar   : Integer;
    myArray : Array[1..5] of Integer;

Begin
 myArray[2] := 25;
 myVar := myArray[2];
End.

答案 1 :(得分:3)

readln只是阅读文字,它不知道你的意思是"10 1.5 18"是三个不同的东西。对于你的人眼来说,这是三个数字,但对于计算机来说,它只是九个字符串。

我的Pascal非常生疏,但如果您将UserInput定义为float类型,则readln应将文本解释为数字,如您所料。或者,如果readln只读取字符串,则必须编写更多代码才能将其转换为数字。