delphi合併兩個陣列例子

2021-08-07 13:13:10 字數 3069 閱讀 7903

使用delphi寫的例子,但願有人來看…

procedure

tform1.btn1click

(sender: tobject);

var arr1,arr2,arr3,arr4:array

of integer;

i,k,n,x:integer;

a,b:integer;

flag:boolean;

begin

randomize;

a:=3;

b:=5;

setlength(arr1,a);

setlength(arr2,b);

lst1.clear;

repeat

flag:=true;

for i:=0

to (a-1) do

arr1[i]:=random(5);

for i:=0

to (b-1) do

arr2[i]:=random(6);

//由於陣列1和陣列2的元素是隨機出來的可能存在重複

for i:=0

to (a-2) do

begin

for k:=(i+1) to (a-1) do

begin

if arr1[i]=arr1[k] then flag:=false;

end;

end;

for i:=0

to (b-2) do

begin

for k:=(i+1) to (b-1) do

begin

if arr2[i]=arr2[k] then flag:=false;

end;

end;

until flag;

//將兩個陣列內容比較,排除重複的

if a>b then

begin

//遍歷數量少的那個陣列

for i:=0

to (b-1) do

for k:=0

to (a-1) do

begin

//如果陣列1和陣列2有相同元素,那麼去掉陣列2中的相同元素

//陣列1獨有的元素+陣列1和2共有的元素+陣列2獨有的元素

if arr2[i]=arr1[k] then

begin

arr2[i]:=-100;

end;

end;

endelse

begin

for i:=0

to (a-1) do

for k:=0

to (b-1) do

begin

//如果陣列1和陣列2有相同元素,那麼去掉陣列2中的相同元素

//陣列1獨有的元素+陣列1和2共有的元素+陣列2獨有的元素

if arr1[i]=arr2[k] then

begin

arr1[i]:=-100;

end;

end;

end;

//找出少的那個陣列值為-1的數量

//陣列1的數量+陣列2的數量-重複數量

x:=0;

//這是a>b的情況

if a>b then

begin

for i:=0

to (b-1) do

begin

if arr2[i]=-100

then x:=x+1;

end;

n:=a+b-x;

setlength(arr3,n);

for i:=0

to (a-1) do

begin

arr3[i]:=arr1[i];

end;

if (b-x)<>0

then setlength(arr4,b-x);

k:=0;

for i:=0

to (b-1) do

begin

if arr2[i]<>-100

then

begin

arr4[k]:=arr2[i];

k:=k+1;

end;

end;

//x=0的時候說明沒有重複的

for i:=a to (b-x+a-1) do

begin

if (b-x)<>0

then arr3[i]:=arr4[i-a];

end;

end// a<=b的情況

else

begin

for i:=0

to (a-1) do

begin

if arr1[i]=-100

then x:=x+1;

end;

n:=a+b-x;

setlength(arr3,n);

for i:=0

to (b-1) do

begin

arr3[i]:=arr2[i];

end;

//x=0的時候說明沒有重複的

if (a-x)<>0

then setlength(arr4,a-x);

k:=0;

for i:=0

to (a-1) do

begin

if arr1[i]<>-100

then

begin

arr4[k]:=arr1[i];

k:=k+1;

end;

end;

//x=0的時候說明沒有重複的

for i:=b to (a-x+b-1) do

begin

if (a-x)<>0

then arr3[i]:=arr4[i-b];

end;

end;

k:=0;

for i:= 0

to (n-1) do

begin

k:=k+1;

lst1.items.add(inttostr(arr3[i]));

end;

edt1.text:=inttostr(k);

end;

合併兩個陣列

include using namespace std int sortedinsert int a,int lena,int b,int lenb else printf d n a indexnew printf here lena d,lenb d n indexa,indexb indexn...

兩個陣列合併

好久沒寫c c 程式了,手腦都遲鈍了老些,希望自己能夠通過沒日一小題來提高自己,鍛鍊自己。今日題目是,兩個已經排好序的陣列,合併他們並使他們也排好序 程式如下 希望高手們來指教。int mergearray int a,int len1,int b,int len2 while i len1 els...

兩個陣列 物件 合併

let array let temp 處理後為下面的 array.foreach item case1 如果array裡的label 9000在temp裡也有label 9000,就把這個label所在物件的items裡的物件給temp裡的label 9000所對應的items case2 如果te...