Advertisement
MeehoweCK

Untitled

Nov 30th, 2018
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.79 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4.  
  5. using namespace std;
  6.  
  7. /*
  8. A19. Napisać funkcję
  9. int q(int* t, int r)
  10. która zwraca wartość występującą w tablicy t o rozmiarze r największą ilość razy.
  11. Jeśli jest wiele takich wartości, należy zwrócić największą z nich.*/
  12.  
  13. int q(int* t, int r)
  14. {
  15.     int liczby[r] = {0};
  16.     int wystapienia[r] = {0};
  17.     int licznik = 0;
  18.  
  19.     bool flaga;
  20.  
  21.     for(int i = 0; i < r; ++i)
  22.     {
  23.         // sprawdzenie czy liczba t[i] wystąpiła już w tablicy
  24.         for(int j = 0; j < licznik; ++j)
  25.         {
  26.             flaga = false;
  27.             if(t[i] == liczby[j])
  28.             {
  29.                 ++wystapienia[j];
  30.                 flaga = true;
  31.                 break;
  32.             }
  33.         }
  34.         if(!flaga)
  35.         {
  36.             // dopisujemy liczbę do tablicy liczby
  37.             liczby[licznik] = t[i];
  38.             ++wystapienia[licznik];
  39.             ++licznik;
  40.         }
  41.     }
  42.  
  43.     // posortujemy tablicę liczby i analogicznie tablicę wystapienia
  44.     for(int i = 0; i < 30; ++i)
  45.         for(int j = 0; j < 30 - i - 1; ++j)
  46.             if(liczby[j] < liczby[j+1])
  47.             {
  48.                 swap(liczby[j], liczby[j+1]);
  49.                 swap(wystapienia[j], wystapienia[j+1]);
  50.             }
  51.     int max = wystapienia[0];
  52.     int nr_liczby = 0;
  53.     for(int i = 0; i < licznik; ++i)
  54.         if(wystapienia[i] > max)
  55.         {
  56.             nr_liczby = i;
  57.             max = wystapienia[i];
  58.         }
  59.     return liczby[nr_liczby];
  60. }
  61.  
  62. int main()
  63. {
  64.     srand(static_cast<unsigned>(time(nullptr)));
  65.     int tablica[30];
  66.     for(int i = 0; i < 30; ++i)
  67.     {
  68.         tablica[i] = rand()%20;
  69.         cout << tablica[i] << " ";
  70.     }
  71.  
  72.     cout << endl << q(tablica, 30) << endl;
  73.  
  74.     return 0;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement