Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Программа должна создать два статических массива с


Автор: Bossx 19.5.2017, 18:14
Кто знает, как правильно поправить код на С++? Программа должна создать два статических массива со случайными
элементами из диапазона [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();
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)