Advertisement
avr39ripe

cppArrCopyReverseByPointerBogdanStanislavVersion

Sep 10th, 2021
1,309
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.71 KB | None | 0 0
  1. Задание 1. Используя два указателя на массив целых
  2. чисел, скопировать один массив в другой. Использовать
  3. в программе арифметику указателей для продвижения
  4. по массиву, а также оператор разыменования.
  5.  
  6.  
  7. #include<iostream>
  8.  
  9. void printArr(int* begin, int* end)
  10. {
  11.     while (begin != end)
  12.     {
  13.         std::cout << *begin++ << ' ';
  14.     }
  15. }
  16.  
  17. int main()
  18. {
  19.     const int sizeArr{ 10 };
  20.     int arr[sizeArr]{ 2,2,2,2,2,2,2,2,2,2 };
  21.     int arr1[sizeArr]{};
  22.  
  23.     int* begin{ arr };
  24.     int* end{ arr + sizeArr };
  25.  
  26.     int* beginArr1{ arr1 };
  27.  
  28.     while (begin != end)
  29.     {
  30.         *beginArr1++ = *begin++;
  31.     }
  32.  
  33.     printArr(arr1, arr1+sizeArr);
  34.  
  35.     std::cout << '\n';
  36.  
  37.     return 0;
  38.  
  39. }
  40.  
  41.  
  42. Задание 2. Используя указатель на массив целых чисел,
  43. изменить порядок следования элементов массива на
  44. противоположный.
  45. Использовать в программе арифметику указателей
  46. для продвижения по массиву, а также оператор разыменования.
  47.  
  48.  
  49.  
  50. #include<iostream>
  51.  
  52. void printArr(int* begin, int* end)
  53. {
  54.     while (begin != end)
  55.     {
  56.         std::cout << *begin++ << ' ';
  57.     }
  58. }
  59.  
  60. int main()
  61. {
  62.     const int sizeArr{ 10 };
  63.     int arr[sizeArr]{ 1,2,3,4,5,6,7,8,9,10};
  64.    
  65.  
  66.     int* begin{ arr };
  67.     int* end{ arr + sizeArr-1};
  68.  
  69.  
  70.     while (begin < end)
  71.     {
  72.         int copy{};
  73.  
  74.         copy = *end;
  75.         *end-- = *begin;
  76.         *begin++ = copy;       
  77.     }
  78.  
  79.     printArr(arr,arr+sizeArr);
  80.  
  81.     std::cout << '\n';
  82.  
  83.     return 0;
  84.  
  85. }
  86.  
  87.  
  88.  
  89. Задание 3. Используя два указателя на массивы целых
  90. чисел, скопировать один массив в другой так, чтобы во
  91. втором массиве элементы находились в обратном порядке.
  92. Использовать в программе арифметику указателей
  93. для продвижения по массиву, а также оператор разыменования.
  94.  
  95.  
  96.  
  97.  
  98. #include<iostream>
  99.  
  100. void printArr(int* begin, int* end)
  101. {
  102.     while (begin != end)
  103.     {
  104.         std::cout << *begin++ << ' ';
  105.     }
  106.     std::cout << '\n';
  107. }
  108.  
  109. int main()
  110. {
  111.     const int sizeArr{ 10 };
  112.     int arr[sizeArr]{ 1,2,3,4,5,6,7,8,9,10};
  113.     int arr1[sizeArr]{};
  114.    
  115.     int* beginArr{ arr };
  116.     int* endArr{ arr + sizeArr };
  117.  
  118.     int* endArr1{ arr1 + sizeArr-1};
  119.  
  120.  
  121.     while (beginArr != endArr)
  122.     {
  123.         *endArr1-- = *beginArr++;
  124.     }
  125.  
  126.     printArr(arr, arr + sizeArr);
  127.     printArr(arr1, arr1 + sizeArr);
  128.  
  129.     std::cout << '\n';
  130.  
  131.     return 0;
  132.  
  133. }
  134.  
  135.  
  136.  
  137.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement