Hemofobia

Untitled

Dec 7th, 2016
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.09 KB | None | 0 0
  1. #include <iostream>
  2. #include <iomanip>  //biblioteka obsługująca setw()
  3. #include <cstdlib>
  4. #include <time.h>
  5.  
  6. using namespace std;
  7.  
  8. const int N=40;
  9.  
  10. int main()
  11. {
  12.     int C[N];
  13.     int i,P,W;
  14.     bool t;
  15.     srand((unsigned)time(NULL));
  16.     W=rand()%5; //aby uprościć i mieć pewność że wystąpi przywódca, można ustawić N jako liczbę nieparzystą, a liczby losować spośród dwóch(np 0 i 1)
  17.     for(i=0; i<N; i++)
  18.     if(rand()%2) C[i]=rand()%5;
  19.     else C[i]=W;
  20.   //wyszukujemy przywódcę
  21.     P=0;
  22.     for(i=0; i<N; i++)
  23.         if(!P)
  24.         {
  25.             W=C[i];
  26.             P=1;
  27.         }
  28.         else if(W==C[i]) P++;
  29.         else P--;
  30.   //sprawdzenie czy jest przywódca
  31.     if(!P) t=false;
  32.     else
  33.     {
  34.         P=0;
  35.         for(i=0; i<N; i++) if(W==C[i]) P++;
  36.         t=P>N/2;    //jeśli P>N/2 zwraca true, czyli wystąpił przywódca
  37.     }
  38.   //wypisanie tablicy
  39.     for(i=0; i<N; i++)
  40.         if(t&&(C[i]==W)) cout<<" >"<<setw(2)<<C[i]; //setw() określ minimalną liczbę pól które może zająć
  41.         else cout<<setw(4)<<C[i];
  42.  
  43.   // Wyświetlamy wyniki
  44.  
  45.     cout<<endl;
  46.     if(t) cout<<W<<" : "<<P<<endl;
  47.     else  cout<<"BRAK LIDERA\n";
  48.     cout<<endl;
  49.     return 0;
  50. }
Add Comment
Please, Sign In to add comment