fork(1) download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. void sort(int * a, size_t n)
  6. {
  7. for(bool chg = true; chg; )
  8. {
  9. chg = false;
  10. for(size_t i = 0; i < n-1; ++i)
  11. if (a[i] > a[i+1])
  12. {
  13. chg = true;
  14. int t = a[i]; a[i] = a[i+1]; a[i+1] = t;
  15. }
  16. }
  17. }
  18.  
  19. int main(int argc, const char * argv[])
  20. {
  21. size_t sizeA, sizeB;
  22. cout << "Size of first array: ";
  23. cin >> sizeA;
  24. cout << "Size of second array: ";
  25. cin >> sizeB;
  26.  
  27. int *arrA = new int[sizeA];
  28. int *arrB = new int[sizeB];
  29.  
  30. cout << "\n\nFirst array: ";
  31. for (size_t i = 0; i < sizeA; i++)
  32. {
  33. arrA[i] = rand() % 9 + 1;
  34. cout << arrA[i] << " ";
  35. }
  36.  
  37. cout << "\n\nSecond array: ";
  38. for (size_t i = 0; i < sizeB; i++)
  39. {
  40. arrB[i] = rand() % 9 + 1;
  41. cout << arrB[i] << " ";
  42. }
  43.  
  44. sort(arrA, sizeA);
  45. sort(arrB, sizeB);
  46.  
  47. int *arrC = new int[sizeA < sizeB ? sizeA : sizeB];
  48. size_t sizeC = 0;
  49.  
  50. for(size_t a = 0, b = 0; a < sizeA && b < sizeB; )
  51. {
  52. if (arrA[a] < arrB[b]) ++a;
  53. else if (arrA[a] > arrB[b]) ++b;
  54. else
  55. {
  56. arrC[sizeC++] = arrA[a];
  57. a++; b++;
  58. }
  59. }
  60.  
  61. cout << "\n\nResult array: ";
  62. for (size_t i = 0; i < sizeC; i++)
  63. {
  64. cout << arrC[i] << " ";
  65. }
  66. cout << endl;
  67.  
  68. delete arrA;
  69. delete arrB;
  70. delete arrC;
  71. }
  72.  
Success #stdin #stdout 0s 15240KB
stdin
15 10
stdout
Size of first array: Size of second array: 

First array: 2 8 1 8 6 8 2 4 7 2 6 5 6 8 6 

Second array: 5 7 1 8 2 9 9 7 7 9 

Result array: 1 2 5 7 8