Главная » 2018 » Март » 2 » Массив динамический, слияние двух массивов. Случайные числа
10:51
Массив динамический, слияние двух массивов. Случайные числа

#include <iostream>
#include <ctime>
using namespace std;
void vvod (int *x, int k);
void vvod_sl (int *x, int k);
void vivod (int *x, int k);
void vozrastanie(int *x, int k);
void sliyanie(int *a, int n, int *b, int m, int *c);
int main()
{
        setlocale(LC_ALL, "Russian");
        srand(time(0));
        int *a, *b, *c, n=rand()%100, m=rand()%100;
        a=new int[n]; b=new int[m]; c=new int[n+m];
        vvod_sl(a,n); vvod_sl(b,m);
        vozrastanie(a,n);
        vozrastanie(b,m);        
        cout<<"Массив A"<<endl; vivod(a,n);
        cout<<"Массив B"<<endl; vivod(b,m);
        sliyanie(a, n, b, m, c);
        cout<<"Массив C"<<endl; vivod(c,n+m);
        delete a; delete b; delete c;
        system("pause");
        return 0;
}
void vvod_sl(int *x, int k)
{
    for (int i=0; i<k; i++) x[i]=rand()%90+10;
}
void vvod(int *x, int k)
{
    for (int i=0; i<k; i++) cin >> x[i];
}
void vivod(int *x, int k)
{        
    for (int i=0; i<k; i++) cout << x[i]<<" ";
    cout << endl;
}
void vozrastanie(int *x, int k)
{
    int min,imin;
    for (int uk=0; uk<k-1; uk++)
    {
        min=x[uk];
        imin=uk;
        for (int i=uk; i<k; i++)
            if (x[i]<min)
            {
                min=x[i];
                imin=i;
            }
        x[imin]=x[uk];
        x[uk]=min;
    }
}
void sliyanie(int *a, int n, int *b, int m, int *c)
{
    int i=0,j=0,k=0;
    while ((i<n) && (j<m))
    {
        if (a[i]<=b[j]) 
            c[k++]=a[i++];
        else 
            c[k++]=b[j++];
    }
    if (i==n)
    {
        for (int p=j;p<m;p++) 
            c[k++]=b[p];
    }
    else if (j==m)
    {
        for (int p=i;p<n;p++) 
            c[k++]=a[p];
    }
}

Просмотров: 328 | Добавил: denjes | Рейтинг: 0.0/0
Всего комментариев: 0
avatar