Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- #include <ctime>
- using namespace std;
- /*
- A19. Napisać funkcję
- int q(int* t, int r)
- która zwraca wartość występującą w tablicy t o rozmiarze r największą ilość razy.
- Jeśli jest wiele takich wartości, należy zwrócić największą z nich.*/
- int q(int* t, int r)
- {
- int liczby[r] = {0};
- int wystapienia[r] = {0};
- int licznik = 0;
- bool flaga;
- for(int i = 0; i < r; ++i)
- {
- // sprawdzenie czy liczba t[i] wystąpiła już w tablicy
- for(int j = 0; j < licznik; ++j)
- {
- flaga = false;
- if(t[i] == liczby[j])
- {
- ++wystapienia[j];
- flaga = true;
- break;
- }
- }
- if(!flaga)
- {
- // dopisujemy liczbę do tablicy liczby
- liczby[licznik] = t[i];
- ++wystapienia[licznik];
- ++licznik;
- }
- }
- // posortujemy tablicę liczby i analogicznie tablicę wystapienia
- for(int i = 0; i < 30; ++i)
- for(int j = 0; j < 30 - i - 1; ++j)
- if(liczby[j] < liczby[j+1])
- {
- swap(liczby[j], liczby[j+1]);
- swap(wystapienia[j], wystapienia[j+1]);
- }
- int max = wystapienia[0];
- int nr_liczby = 0;
- for(int i = 0; i < licznik; ++i)
- if(wystapienia[i] > max)
- {
- nr_liczby = i;
- max = wystapienia[i];
- }
- return liczby[nr_liczby];
- }
- int main()
- {
- srand(static_cast<unsigned>(time(nullptr)));
- int tablica[30];
- for(int i = 0; i < 30; ++i)
- {
- tablica[i] = rand()%20;
- cout << tablica[i] << " ";
- }
- cout << endl << q(tablica, 30) << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement