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陣列 直接用 m n p q 就可以了。請注意 中括號用於陣列拼接,不僅適用於數值型的陣列,也適用於cell和struct等等,包括類,比如傳遞函式tf。m n p q m n p q 胞元陣列 cell arry 的基本組分是胞元 cell 每個胞元本身在陣列中是平等的,只能以下標區分。胞元可以存放任何... 這個是動態陣列。但是動態陣列只能從下標0開始,因此為了安全起見,不應該直接引用陣列的下標或上標,而是用過用low 和high 如下 varn array of longint 定義 宣告 動態陣列 i longint s real len integer 陣列的長度 begin while not ... 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...matlab怎樣合併元胞陣列
pascal一維陣列如何鍵盤讀入上下標
pascal去掉陣列中重複數字,並把後面的遷移