Advertisement
AnyaAS

Ukazateli_3_2

Mar 3rd, 2015
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.08 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <time.h>
  4. #include <stdlib.h>
  5. using namespace std;
  6.  
  7. int Vvod_chisel(char *);
  8. void Init(int *, int, char *);
  9. void Print(int *, int, char *);
  10. int * Search(int *A, int m, int *B, int n, int *newmas, int *size);
  11. int * Create(int value, int *newmas, int *size);
  12.  
  13. int _tmain(int argc, _TCHAR* argv[])
  14. {
  15.     setlocale(LC_ALL, "Russian");
  16.     int n, m, *A, *B;
  17.     do
  18.     {
  19.         m = Vvod_chisel("Введите размер первого массива = ");
  20.         n = Vvod_chisel("Введите размер второго массива = ");
  21.     } while (n <= 0 && m <= 0);
  22.     A = new int[m];
  23.     B = new int[n];
  24.     int size = 0;
  25.     int *newmas = new int[size];
  26.     srand(time(NULL));
  27.     Init(A, m, "Создание первого массива...");
  28.     Init(B, n, "Создание второго массива...");
  29.     Print(A, m, "Созданный первый массив");
  30.     Print(B, n, "Созданный второй массив");
  31.     cout << "Создание третьего массива..." << endl;
  32.     newmas = Search(A, m, B, n, newmas, &size);
  33.     Print(newmas, size, "Созданный третий массив");
  34.     delete[]A;
  35.     delete[]B;
  36.     delete[]newmas;
  37. }
  38. int Vvod_chisel(char *ms)
  39. {
  40.     cout << ms;
  41.     char str[10];
  42.     cin.getline(str, 10);
  43.     return atoi(str);
  44. }
  45. void Init(int *mas, int n, char *ms)
  46. {
  47.     cout << ms << endl;
  48.     for (int i = 0; i < n; *mas++ = rand() % 30 + -10, i++);
  49. }
  50. void Print(int *mas, int n, char *ms)
  51. {
  52.     cout << ms << endl;
  53.     for (int i = 0; i < n; cout.width(3), cout << *mas++, i++);
  54.     cout << endl;
  55. }
  56. int * Search(int *A, int m, int *B, int n, int *newmas, int *size)
  57. {
  58.     for (int i = 0; i < m; i++)
  59.     {
  60.         if (*(A + i) >= 0)
  61.         {
  62.             newmas = Create(*(A + i), newmas, size);
  63.         }
  64.     }
  65.     for (int i = 0; i < n; i++)
  66.     {
  67.         if (*(B + i) >= 0)
  68.         {
  69.             newmas = Create(*(B + i), newmas, size);
  70.         }
  71.     }
  72.     return newmas;
  73. }
  74. int * Create(int value, int *newmas, int *size)
  75. {
  76.     int *mas = new int[*size + 1];
  77.     for (int i = 0; i < *size; i++)
  78.     {
  79.         *(mas + i) = *(newmas + i);
  80.     }
  81.     mas[*size] = value;
  82.     *size += 1;
  83.     return mas;
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement