С++. С++ написати 2 повних кода

Завдання 1
Дани два масиви: А[M] i B[N] (M i N вводяться з клавіатури). Необхідно створити третій масив мiнiмально можливого розміру, у якому потрібно зібрати елементи масиву А, які не включаються до масиву В, без повторень.


Завдання 2. Дани два масиви: А[М] i B[N] (M i N вводяться з клавіатури). Необхідно створити третій масив мiнiмально можливого розміру, у якому потрібно зібрати елементи масивів А і В, які не є загальними для них, без повторень.​

Ответы

Ответ дал: specialspaw
0

Завдання 1:


#include <iostream>

#include <algorithm>

using namespace std;

int main() {

   int M, N;

   cout << "Введіть розмір масиву А: ";

   cin >> M;

   cout << "Введіть розмір масиву B: ";

   cin >> N;

   

   int A[M], B[N];

   cout << "Введіть елементи масиву А: ";

   for (int i = 0; i < M; i++) {

       cin >> A[i];

   }

   cout << "Введіть елементи масиву B: ";

   for (int i = 0; i < N; i++) {

       cin >> B[i];

   }

   

   sort(A, A + M);

   sort(B, B + N);

   

   int C[M];

   int size = 0;

   

   for (int i = 0; i < M; i++) {

       if (!binary_search(B, B + N, A[i])) {

           if (size == 0 || C[size - 1] != A[i]) {

               C[size] = A[i];

               size++;

           }

       }

   }

   

   cout << "Результат: ";

   for (int i = 0; i < size; i++) {

       cout << C[i] << " ";

   }

   cout << endl;

   

   return 0;

}

Завдання 2:


#include <iostream>

#include <algorithm>

using namespace std;

int main() {

   int M, N;

   cout << "Введіть розмір масиву А: ";

   cin >> M;

   cout << "Введіть розмір масиву B: ";

   cin >> N;

   

   int A[M], B[N];

   cout << "Введіть елементи масиву А: ";

   for (int i = 0; i < M; i++) {

       cin >> A[i];

   }

   cout << "Введіть елементи масиву B: ";

   for (int i = 0; i < N; i++) {

       cin >> B[i];

   }

   

   sort(A, A + M);

   sort(B, B + N);

   

   int C[M];

   int size = 0;

   

   for (int i = 0; i < M; i++) {

       if (find(B, B + N, A[i]) == B + N) {

           if (size == 0 || find(C, C + size, A[i]) == C + size) {

               C[size] = A[i];

               size++;

           }

       }

   }

   

   for (int i = 0; i < N; i++) {

       if (find(A, A + M, B[i]) == A + M) {

           if (size == 0 || find(C, C + size, B[i]) == C + size) {

               C[size] = B[i];

               size++;

           }

       }

   }

   

   cout << "Результат: ";

   for (int i = 0; i < size; i++) {

       cout << C[i] << " ";

   }

   cout << endl;

   

   return 0;

}

Вас заинтересует