Đến nội dung

Hình ảnh

Trộn 2 mảng A, B đã sắp xếp thành một mảng C sao cho các phần tử đôi một khác nhau và không đồng thời thuộc 2 mảng A, B.


  • Please log in to reply
Chủ đề này có 2 trả lời

#1
thang1308

thang1308

    Trung sĩ

  • Thành viên
  • 197 Bài viết

Trộn 2 mảng A, B đã sắp xếp thành một mảng C sao cho các phần tử đôi một khác nhau và không đồng thời thuộc 2 mảng A, B.

 

VD:  mảng A: 5, 5, 6,   , 8, 9 

        mảng B: 4, 5, 6, 7, 7, 10, 12

        mảng C: 4,         7, 8, 9, 10, 12 


Hôm nay thi xong. Căn bản là mệt!!! :wacko:  :wacko:


#2
NTL2k1

NTL2k1

    Hạ sĩ

  • Thành viên
  • 99 Bài viết


Trộn 2 mảng A, B đã sắp xếp thành một mảng C sao cho các phần tử đôi một khác nhau và không đồng thời thuộc 2 mảng A, B.

 

VD:  mảng A: 5, 5, 6,   , 8, 9 

        mảng B: 4, 5, 6, 7, 7, 10, 12

        mảng C: 4,         7, 8, 9, 10, 12 

Mình có ý kiến thế này:

- Khi post đề thì bạn nên viết cho rõ ràng và chính xác !

- Cho ví dụ đúng, dễ hiểu và chuẩn !
- Còn như đề của bạn thì mình chưa biết là mảng ký tự hay mảng số nguyên nữa  :wacko: ( Nếu là mảng số nguyên thì code ở dưới)
- Xin bạn thứ lỗi chứ thực ra mình thấy cái ví dụ bạn viết quá ẩu :mảng C: 4,         7, 8, 9, 10, 12 
Mình nói thế không có ý xúc phạm bạn nhưng mong bạn hiểu và rút kinh ngiệm. Thế thôi  :lol: 
Code:
program mang_c;
uses crt;
var i,j,k,l,p,n,m,tg:longint;
a,b,c,x,d:array[1..1000] of longint;
begin
clrscr;
write('Nhap so phan tu mang a:');readln(n);
k:=0;
for i:=1 to n do
    begin
    write('a[',i,']=');readln(a[i]);
    end;
for i:=1 to n-1 do
begin
l:=i+1;
       while l<=n do
       begin
       if a[i]=a[l] then
       begin
       for p:=l to n do
       a[p]:=a[p+1];
       n:=n-1;
       end else l:=l+1;
       end;
end;
writeln;
write('Nhap so phan tu mang b:');readln(m);
for i:=1 to m do
    begin
    write('b[',i,']=');readln(b[i]);
    k:=k+1;
    end;
for i:=1 to m-1 do
begin
l:=i+1;
       while l<=m do
       begin
       if b[i]=b[l] then
       begin
       for p:=l to m do
       b[p]:=b[p+1];
       m:=m-1;
       end else l:=l+1;
       end;
end;
k:=0;
i:=0;
while i<=n do
      begin
      k:=k+1;
      i:=i+1;
      c[k]:=a[i];
      d[k]:=0;
      end;
i:=0;
while i<=m do
      begin
      k:=k+1;
      i:=i+1;
      c[k]:=b[i];
      d[k]:=0;
      end;
for i:=1 to k-1 do
begin
    l:=i+1;
    while l<=k do
    begin
    if c[i]=c[l] then
    begin
    d[i]:=d[i]+1;
    for p:=l to k do
    c[p]:=c[p+1];
    k:=k-1;
    end else l:=l+1;
    end;
end;
l:=0;
for i:=1 to k do
if d[i]=0 then
   begin
   l:=l+1;
   x[l]:=c[i];
   end;
for i:=1 to l-1 do
for j:=i+1 to l do
    if x[i]>x[j] then
    begin
    tg:=x[i];
    x[i]:=x[j];
    x[j]:=tg;
    end;
writeln('Mang C:');
for i:=1 to l do
write(x[i]:4);
readln
end.

Bài viết đã được chỉnh sửa nội dung bởi NTL2k1: 03-08-2016 - 12:09

Bình tĩnh - Tự tin - Chiến thắng

Không phải là tôi quá thông minh, chỉ là tôi chịu bỏ nhiều thời gian hơn với rắc rối .

Cứ làm việc chăm chỉ trong im lặng - Hãy để thành công trở thành tiếng nói của bạn .

 


#3
thang1308

thang1308

    Trung sĩ

  • Thành viên
  • 197 Bài viết

à, mình viết mảng C như thế là để chỉ rõ khi đi qua phần tử 5 và 6 của mảng A,B thì không lấy thôi, còn dĩ nhiên phải là mảng số nguyên rồi, xl bạn


Bài viết đã được chỉnh sửa nội dung bởi thang1308: 03-08-2016 - 22:09

Hôm nay thi xong. Căn bản là mệt!!! :wacko:  :wacko:





1 người đang xem chủ đề

0 thành viên, 1 khách, 0 thành viên ẩn danh