回 帖 发 新 帖 刷新版面

主题:菜鸟又要问问题啦~~~麻烦大家

我在书上看同类型的数组是可以互相赋值的,于是我上机验证,写了下面一段:


var a,b:array [1..3] of integer;
    i:integer;
begin
      for i:=1 to 3 readln(a[i]);
3:    b:=a;
    ......

但编译发生错误,指第3行:type mismatch
这是为什么呢?
   还有个问题:如果数组a,b的长度不同,还可以互相赋值吗?例如:
1:a:array [1..3] of integer;
   b:array [1..2] of integer;
   a比b长,在下面能执行b:=a吗?那么a:=b呢?

   谢谢大家了!!  ^_^

回复列表 (共7个回复)

沙发

我也不懂耶,顺便问一下

板凳

数组好像不能直接赋值吧!(这是本人的猜想,请不要介意)

3 楼

3后面少一个do啊

4 楼

var
   a,b : array[1..3] of integer;
   i : byte;
begin
     for i:=1 to 3 do
         read(a[i]);
     b := a;
     for i:=1 to 3 do
         write(b[i],' ');
     readln;
end.

5 楼


不能。长度和类型相同才能互相赋值。

6 楼

for i:=1 to 3 do .....

7 楼

补充5楼
可以这样:
var
  a:array[1..10,1..10]of integer;
  b:array[1..10]of integer;
begin
  a[1]:=b;
end.
很灵活把

我来回复

您尚未登录,请登录后再回复。点此登录或注册