Предмет: Информатика, автор: gfghvcf693

С++
Задано два масиви цілих чисел A(n), n = 40 і B(m), m = 15 . Обчислити суму

об’єднання AUB . Об’єднання AUB – це множина елементів масиву A і B , взятих

по одному разу. Вивести елементи об’єднання та їх суму.

Виконати завдання використовуючи динамічну пам’ять та

вказівники на неї. До елементів масиву звертатись за допомогою вказівників.​


nazikmuz: Сенс використовувати динамічну пам'ять при відомих розмірах,але нехай

Ответы

Автор ответа: nazikmuz
1

Відповідь:

C++ code:

#include <iostream>

#include <cstdlib>

#include <ctime>

typedef unsigned int sz;

void rand_arr(int *arr,const sz size){

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

       *(arr + i) = rand() % 20 + 1;

   }

}

void print_arr(int *arr,const sz size){

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

       std::cout << *(arr + i) << " ";

   }

   std::cout << std::endl;

}

int sum_arr(int *arr,const sz size){

   int sum = 0;

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

       sum += *(arr + i);

   }

   return sum;

}

int main(){

   srand(time(NULL));

   const sz n = 40,m = 15;

   int *A = new int[n];

   int *B = new int[m];

   rand_arr(A,n);

   rand_arr(B,m);

   std::cout << "A: " << std::endl;

   print_arr(A,n);

   std::cout << "B: " << std::endl;

   print_arr(B,m);

   sz c = n + m;

   int *C = new int[c];  

   for(sz i = 0; i < n; i++){

       *(C + i) = *(A + i);

   }

   for(sz i = n, j = 0; i < c; i++, j++){

       *(C + i) = *(B + j);

   }

   std::cout << "C: " << std::endl;

   print_arr(C,c);

   std::cout << "Sum: " << sum_arr(C,c) << std::endl;

   delete[] A;

   delete[] B;

   delete[] C;

   return 0;

}

Похожие вопросы