Кто знает, как правильно поправить код на С++? Программа должна создать два статических массива со случайными элементами из диапазона [5;20], по 10 элементов в каждом массиве, вывести каждый массив на экран на отдельной строке. Затем программа должна создать динамический массив нужного размера и скопировать в него все общие элементы из первых двух массивов(без повторений). Вывести получившийся динамический массив на экран на отдельной строке.
Пример работы программы: 12 7 16 19 9 16 11 13 8 5 6 10 10 16 13 7 17 13 18 14 7 16 13
| HTML | #include <iostream> #include <conio.h>
using namespace std;
int *f8(int *a, int *b, int m, int n, int *sizetotal) { bool flag; int newsize = 0; for (int i = 0; i < m; ++i) { flag = true; for (int j = 0; j < n; ++j) { if (flag == true && a[i] == b[j]) { flag = false; ++newsize; break; } } } *sizetotal = newsize; int* arr = new int[*sizetotal]{}; int k = 0; for (int i = 0; i < m; ++i) { flag = true; for (int j = 0; j < n; ++j) { if (flag == true && a[i] == b[j]) { arr[k] = b[j]; ++k; flag = false; break; } } } return arr; } void InitArray(int *a, int size, int min, int max) { for (int i = 0; i < size; ++i) { a[i] = rand() % (max - min + 1) + min; } } cout << "Enter size of first array:" << endl; cin >> N; arrd = new int[N]; InitArray(arrd, N, 5, 20); ShowArray(arrd, N); cout << "Enter size of second array:" << endl; cin >> M; arrd2 = new int[M]; InitArray(arrd2, M, -10, 10); ShowArray(arrd2, M); int *sizetotal = &N; ares = f8(arrd, arrd2, N, M, sizetotal); ShowArray(ares, *sizetotal); delete[]arrd; arrd = nullptr; delete[]arrd2; arrd2 = nullptr; delete[]ares; ares = nullptr; getch(); }
|
|