С++
Задано два масиви цілих чисел A(n), n = 40 і B(m), m = 15 . Обчислити суму
об’єднання AUB . Об’єднання AUB – це множина елементів масиву A і B , взятих
по одному разу. Вивести елементи об’єднання та їх суму.
Виконати завдання використовуючи динамічну пам’ять та
вказівники на неї. До елементів масиву звертатись за допомогою вказівників.
Ответы
Відповідь:
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;
}