Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Chương trình C thực hiện phép giao (intersection) của hai mảng

Phép giao

Tập hợp các phần tử chung của hai mảng. Ví dụ: {1,2,3,4,6} ∩ {1,2,5,6,7} = {1,2,6}

Logic

k = 0;
for i = 0..size1-1
  for j = 0..size2-1
    if a[i] == b[j]
      intersection[k++] = a[i];

Sau đó sắp xếp và loại bỏ trùng lặp.

Chương trình C

#include <stdio.h>

int removerepeated(int size, int a[]);
void sort(int size, int a[]);

main() {
    int i, size1, size2, j = 0, k, intersectionsize;
    printf("Kích thước mảng 1: "); scanf("%d", &size1);
    printf("Kích thước mảng 2: "); scanf("%d", &size2);

    int a[size1], b[size2], intersection[size1 < size2 ? size1 : size2];

    printf("Nhập mảng 1:\n"); for(i=0;i 0) for(i=0;ia[j]) { int t=a[i]; a[i]=a[j]; a[j]=t; }
}

Kết quả

Kích thước mảng 1: 5
Kích thước mảng 2: 2
Mảng 1: 4 5 6 7 8
Mảng 2: 4 1
Mảng sau giao: 4