Advertisement
MeehoweCK

Untitled

Jun 4th, 2023
667
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.69 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. void fMaxMin(vector<int*> vec, int* max, int**& min, int** cMax, int& cMin)
  7. {
  8.     int val_max, val_min, val_cMax, val_cMin;
  9.  
  10.     val_max = *(vec[0]);
  11.     val_min = *(vec[0]);
  12.     val_cMax = 1;
  13.     val_cMin = 1;
  14.  
  15.     int size = vec.size();
  16.     for (int i = 1; i < size; ++i)
  17.     {
  18.         if (*(vec[i]) > val_max)
  19.         {
  20.             val_max = *(vec[i]);
  21.             val_cMax = 1;
  22.         }
  23.         else if (*(vec[i]) == val_max)
  24.             ++val_cMax;
  25.         if (*(vec[i]) < val_min)
  26.         {
  27.             val_min = *(vec[i]);
  28.             val_cMin = 1;
  29.         }
  30.         else if (*(vec[i]) == val_min)
  31.             ++val_cMin;
  32.     }
  33.  
  34.     *max = val_max;
  35.     *(*min) = val_min;
  36.     *(*cMax) = val_cMax;
  37.     cMin = val_cMin;
  38. }
  39.  
  40. int main()
  41. {
  42.     auto vec = vector<int>{ 1, 2, 1, 42, 2, 2, 42, 1, 1, 2, 1, 42 };        // utworzenie wektora typu int
  43.     auto vecP = vector<int*>();                                             // utworzenie pustego wektora typu wskaźnik na int (int*)
  44.     for (auto& item : vec)                                                  // nagłówek zakresowej pętli for
  45.     {
  46.         vecP.push_back(&item);                                              // wstawienie do wektora vecP wskaźników do elementów wektora vec
  47.     }
  48.  
  49.     int max, min, cMax, cMin;                                               // utworzenie zmiennych przechowujących wyniki
  50.  
  51.     int* ptr_min = &min;                                                    // utworzenie wskaźnika przechowującego adres zmiennej min
  52.     int** ptr2_min = &ptr_min;                                              // utworzenie wskaźnika przechowującego adres wskaźnika ptr_min
  53.  
  54.     int* ptr_cMax = &cMax;                                                  // utworzenie wskaźnika przechowującego adres zmiennej cMax
  55.  
  56.     fMaxMin(vecP, &max, ptr2_min, &ptr_cMax, cMin);                         // wywołanie funkcji fMaxMin
  57.  
  58.     cout << "max: " << max << endl;
  59.     cout << "min: " << min << endl;
  60.     cout << "cMax: " << cMax << endl;
  61.     cout << "cMin: " << cMin << endl;
  62.  
  63.     return 0;
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement