pascal陣列合並

2023-01-05 07:26:06 字數 1882 閱讀 2282

1樓:陶梓絮

方法很多咯。

1.如果數字不大的話用桶排序比較方便。就是用一個bool陣列來紀錄有沒有這個數,再輸出

2.排序咯。這題明顯是經典的合併排序。當然你用別的排序也可以,反正不超過100個。

樓上是什麼方法我倒是沒有看出來==|||

我推薦用合併排序。每次取a、b陣列中最小的加入最終陣列,然後把這個數從陣列中刪掉。如果一樣也刪掉。

話說我隨便寫寫,沒有編譯的噢。

vara:array[1..1000]of integer;

b:array[1..1000]of integer;

c:array[0..1000]of integer;

i,j,s1,s2:integer;

begin

readln(s1);

for i:=1 to s1 do read(a[i]);

readln(s1);

for i:=1 to s2 do read(b[i]);

i:=1;j:=1;

while (i<=s1)or(j<=s2) do begininc(c[0]);

if i>s1 then begin

c[c[0]]:=b[j];

inc(j);

endelse if j>s2 then beginc[c[0]]:=a[i];

inc(i);

endelse if a[i]b[j] then beginc[c[0]]:=b[j];

inc(j);

endelse begin

c[c[0]]:=a[i];

inc(i);inc(j);

end;

end;

for i:=1 to c[0] do

write(c[i]:4);

end.

2樓:涐媞犭者

program pyy;

var a:array[1..10000] of integer;

b:array[1..10000] of integer;

i,h,c,d,e,f,g,x:integer;

begin

writeln('a[i]');

readln(h);

for c:=1 to h do

readln(a[c]);

writeln('b[i]');

readln(f);

for c:=1 to f do

readln(b[c]);

x:=1;

for d:=1 to f do

begin

if b[d]<=a[x]

then e:=x

else if b[d]>=a[h]then e:=h+1

else for c:=x to h-1 doif (b[d]>=a[c])and(b[d]

for c:=h downto e do

a[c+1]:=a[c];

a[e]:=b[d];

h:=h+1;

x:=e;

end;

for c:=1 to h do

for d:=c+1 to h do

if a[c]=a[d]

then

begin

for f:=d to h-1 do

a[f]:=a[f+1];

h:=h-1;

end;

for c:=1 to h do

write(a[c]:4);

readln;

end.

先輸入a陣列的個數

再輸入a陣列

再輸入b陣列的個數

再輸入b陣列

matlab怎樣合併元胞陣列

直接用 m n p q 就可以了。請注意 中括號用於陣列拼接,不僅適用於數值型的陣列,也適用於cell和struct等等,包括類,比如傳遞函式tf。m n p q m n p q 胞元陣列 cell arry 的基本組分是胞元 cell 每個胞元本身在陣列中是平等的,只能以下標區分。胞元可以存放任何...

pascal一維陣列如何鍵盤讀入上下標

這個是動態陣列。但是動態陣列只能從下標0開始,因此為了安全起見,不應該直接引用陣列的下標或上標,而是用過用low 和high 如下 varn array of longint 定義 宣告 動態陣列 i longint s real len integer 陣列的長度 begin while not ...

pascal去掉陣列中重複數字,並把後面的遷移

var a array 1.256 of integer x,n,i,j integer begin readln n for i 1 to n do read a i readln i 1 while ij i 1 whie j n do begin if a j a i then beginfo...