Advertisement
MeehoweCK

Untitled

Nov 30th, 2018
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.28 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4.  
  5. using namespace std;
  6.  
  7. /*A22. Napisać funkcję
  8. bool b(int* t, int r)
  9. która zwraca true wtedy i tylko wtedy, gdy w tablicy t o rozmiarze r znajdują się
  10. dokładnie dwie różne wartości.*/
  11.  
  12. bool b(int* t, int r)
  13. {
  14.     int wartosc1 = t[0];
  15.     int wartosc2;
  16.     bool druga_wartosc = false;     // sprawdza czy pojawiła się już druga wartość
  17.  
  18.     for(int i = 1; i < r; ++i)
  19.     {
  20.         if(t[i] != wartosc1)
  21.         {
  22.             // opcja 1 - druga wartosc jeszcze nie wystapila:
  23.             if(!druga_wartosc)
  24.             {
  25.                 druga_wartosc = true;
  26.                 wartosc2 = t[i];
  27.             }
  28.  
  29.             // opcja 2 - druga wartosc wystapila i jest równa t[i]
  30.             else if(t[i] == wartosc2)
  31.                 continue;
  32.  
  33.             // opcja 3 - druga wartosc wystapila i jest rozna od t[i]
  34.             else
  35.                 return false;
  36.         }
  37.     }
  38.     if(druga_wartosc)
  39.         return true;
  40.     return false;
  41. }
  42.  
  43. int main()
  44. {
  45.     srand(static_cast<unsigned>(time(nullptr)));
  46.     int tablica[5];
  47.     for(int i = 0; i < 5; ++i)
  48.     {
  49.         tablica[i] = rand() % 4;
  50.         cout << tablica[i] << " ";
  51.     }
  52.  
  53.     cout << endl << b(tablica, 5) << endl;
  54.  
  55.     return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement