Arrays 如何以不同的方式在阵列上复制到另一个阵列-Pascal

Arrays 如何以不同的方式在阵列上复制到另一个阵列-Pascal,arrays,pascal,Arrays,Pascal,我正在用数组解决3个问题。其中两个我已经解决了,我有两个问题 前两个的代码是否良好,以及如何解决第三个问题 好的,第三个问题是这样将数组复制到另一个数组:arrayA=[1,2,3],那么arrayB是[1,2,3,3,2,1] 首先从开始到结束,然后从结束到开始。第一个问题是以这种方式将arrayA复制到arrayB:arrayA=[1,2,3],arrayB=[1,1,2,2,3,3]。 我将只发布我的伪代码 while i<length(a) do begin b[j]=a[i]

我正在用数组解决3个问题。其中两个我已经解决了,我有两个问题

前两个的代码是否良好,以及如何解决第三个问题

好的,第三个问题是这样将数组复制到另一个数组:arrayA=[1,2,3],那么arrayB是[1,2,3,3,2,1]

首先从开始到结束,然后从结束到开始。第一个问题是以这种方式将arrayA复制到arrayB:arrayA=[1,2,3],arrayB=[1,1,2,2,3,3]。 我将只发布我的伪代码

while i<length(a) do begin
  b[j]=a[i];
  j+=1;
  if (j+1) MOD 2 =0 then i+=1;
end;

如果预定义了计数,则在循环时避免

利用简单索引算法(我假设所有数组都是基于1的):


你的描述很难理解,但最大的问题是你的例子不完整。根据数组的类型,边界在Pascal中可能会有所不同,因此您显示的内容不足以回答任何问题。哦,如果你使用免费的Pascal,请启用所有检查(范围、溢出、算术),-CRriot。这是我分配的数组,不是动态的,所以索引从1开始…我不明白,CRiot怎么帮我?这就是问题所在,@Hasin。你还没有发布你的分配代码,人们就是猜不到它是怎么回事。如果你想获得更多的帮助,我建议你发布更多的代码。
for i=1 to length(a) do arrayB[i]=arrayA[i];
for i=length(a)+1 to 2*length(a) do arrayB[i]=arrayA[i-length(a)]
//112233
for i := 1 to length(a) do begin
  b[2 * i - 1] := a[i];
  b[2 * i] := a[i];
end;

//123123
l := length(a);
for i := 1 to length(a) do begin
  b[i] := a[i];
  b[i + l] := a[i];
end;

//123321
l := length(a);
for i := 1 to length(a) do begin
  b[i] := a[i];
  b[2*l - i + 1] := a[i];
end;