Advertisement
Petro_zzz

Указатели и my_swap

Apr 8th, 2024
592
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.76 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int calc_sum(int a, int b) {
  6.     return a + b;
  7. }
  8.  
  9. void pointer_teory() {
  10.  
  11.     int boburbek = 16;
  12.     cout << &boburbek << endl;
  13.  
  14.     auto pBoburbek = &boburbek;
  15.     cout << pBoburbek << " " << *pBoburbek << endl;
  16.  
  17.     int *pB2 = &boburbek;
  18.  
  19.     cout << *(&boburbek) << endl;
  20.     cout << &(*pBoburbek) << endl;
  21.  
  22.     double PI_val = 3.1415;
  23.     double* pPI_val = &PI_val;
  24.     cout << pPI_val << " " << *pPI_val << endl;
  25.     cout << &PI_val << " " << PI_val << endl;
  26.  
  27.     int a = 5, b = 7, c = 13;
  28.     int *pa = &a, *pb = &b, *pc = &c;
  29.     *pc = *pa + *pb;
  30.     cout << "C: " << c << endl;
  31. }
  32.  
  33. void my_swap2(int* pa, int* pb) {
  34.     cout << "IN FUN: " << *pa << *pb << endl;
  35.     int tmp = *pb;
  36.     *pb = *pa;
  37.     *pa = tmp;
  38.     cout << "IN FUN: " << *pa << *pb << endl;
  39. }
  40.  
  41. void my_swap(int& a, int& b) {
  42.     //cout << "IN FUN: " << a << b << endl;
  43.     int tmp = b;
  44.     b = a;
  45.     a = tmp;
  46.     //cout << "IN FUN: " << a << b << endl;
  47. }
  48.  
  49.  
  50.  
  51. void test_swap() {
  52.    
  53.  
  54.     int a = 5, b = 7, c = 9, d = 11;
  55.  
  56.     cout << a << " " << b << " "
  57.         << c << " " << d << endl;
  58.  
  59.     my_swap(a, b);
  60.  
  61.     //swap(a, b);
  62.     // do it
  63.  
  64.     // case 1 (Memory)
  65.     //int tmp = b;
  66.     //b = a;
  67.     //a = tmp;
  68.     //tmp = d;
  69.     //d = c;
  70.     //c = tmp;
  71.  
  72.     // case 2 (Operation)
  73.     //a = a + b;
  74.     //b = a - b;
  75.     //a = a - b;
  76.  
  77.  
  78.     cout << a << " " << b << " "
  79.         << c << " " << d << endl;
  80.  
  81.  
  82.     //pointer_teory();
  83. }
  84.  
  85. void show_arr(int size, int arr[]) {
  86.     for (int k = 0; k < size; k++)
  87.         cout << arr[k] << " ";
  88.     cout << endl;
  89. }
  90.  
  91. void shafle() {
  92.     int arr[]{ 1,2,3,4,5 };
  93.     show_arr(5, arr);
  94.  
  95.  
  96.     for (int m = 0; m < 5; m++) {
  97.         int k = rand() % 5;
  98.         int n = rand() % 5;
  99.         my_swap(arr[k], arr[n]);
  100.     }
  101.  
  102.     show_arr(5, arr);
  103.     //cout << k << " " << n << endl;
  104. }
  105.  
  106. int main() {
  107.     srand(time(NULL));
  108.     shafle();
  109.     return 0;
  110. }
  111.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement