Вопрос задан 09.06.2023 в 12:05. Предмет Информатика. Спрашивает Вишнёвская Варя.

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

Об’єднання AUB – це множина елементів масиву A і B , взятих по одному разу. Вивести елементи об’єднання та їх суму.Виконати завдання використовуючи динамічну пам’ять та вказівники на неї. До елементів масиву звертатись за допомогою вказівників.​
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Бычкова Екатерина.

Відповідь:

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;

}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Ось приклад реалізації завдання на C++:

cpp
#include <iostream> int* mergeArrays(int* arrayA, int sizeA, int* arrayB, int sizeB, int& sizeC) { int* arrayC = new int[sizeA + sizeB]; // Виділення пам'яті для об'єднаного масиву // Копіюємо елементи з масиву A for (int i = 0; i < sizeA; i++) { arrayC[i] = arrayA[i]; } // Копіюємо елементи з масиву B, якщо вони ще не містяться в об'єднаному масиві for (int i = 0; i < sizeB; i++) { bool isDuplicate = false; for (int j = 0; j < sizeA; j++) { if (arrayB[i] == arrayA[j]) { isDuplicate = true; break; } } if (!isDuplicate) { arrayC[sizeA++] = arrayB[i]; } } sizeC = sizeA; // Розмір об'єднаного масиву return arrayC; } int main() { int sizeA = 40; int sizeB = 15; int* arrayA = new int[sizeA]; int* arrayB = new int[sizeB]; // Заповнюємо масив A цілими числами (для прикладу використовуємо значення від 1 до 40) for (int i = 0; i < sizeA; i++) { arrayA[i] = i + 1; } // Заповнюємо масив B цілими числами (для прикладу використовуємо значення від 1 до 15) for (int i = 0; i < sizeB; i++) { arrayB[i] = i + 1; } int sizeC = 0; int* arrayC = mergeArrays(arrayA, sizeA, arrayB, sizeB, sizeC); // Виводимо елементи об'єднаного масиву std::cout << "Об'єднання AUB: "; for (int i = 0; i < sizeC; i++) { std::cout << arrayC[i] << " "; } std::cout << std::endl; // Обчислюємо суму елементів об'єднаного масиву int sum = 0; for (int i = 0; i < sizeC; i++) { sum += arrayC[i]; } std::cout << "Сума елементів об'єднання: " << sum << std::endl; // Звільняємо пам'ять delete[] arrayA; delete[] arrayB; delete[]
0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос