Advertisement
Adijata

binary

Nov 20th, 2014
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.24 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. struct Student
  6.     {
  7.         string prezime, ime;
  8.  
  9.     };
  10.  
  11. int binarnaKraj(Student niz[], int maxGr, Student novi, int minGr=0)
  12. {
  13.     if(minGr>maxGr)
  14.         return -1;
  15.     else
  16.     {
  17.  
  18.         if(novi.ime[0] == niz[(minGr+maxGr)/2].ime[0]  && novi.prezime == niz[(minGr+maxGr)/2].prezime[0]){
  19.             if((niz[(minGr+maxGr)/2+1].ime[0]== novi.ime[0] && novi.prezime == niz[(minGr+maxGr)/2+1].prezime[0]) || (niz[(minGr+maxGr)/2-1].ime[0]== novi.ime[0] && novi.prezime == niz[(minGr+maxGr)/2-1].prezime[0]))
  20.             return binarnaKraj(niz, maxGr+1, element, minGr);
  21.             else
  22.             return (minGr+maxGr)/2;
  23.         }
  24.  
  25.         else if(element < niz[(minGr+maxGr)/2])
  26.         {
  27.             return binarnaKraj(niz, (minGr+maxGr)/2-1, element, minGr);
  28.         }
  29.  
  30.         else
  31.         {
  32.             return binarnaKraj(niz, maxGr, element, (minGr+maxGr)/2+1);
  33.         }
  34.     }
  35.  
  36. }
  37.  
  38. int binarnaPocetak(Student* niz, int maxGr, Student novi, int minGr=0)
  39. {
  40.     if(minGr>maxGr)
  41.         return -1;
  42.     else
  43.     {
  44.         if(novi.ime[0] == niz[(minGr+maxGr)/2].ime[0]  && novi.prezime == niz[(minGr+maxGr)/2].prezime[0]){
  45.             if((niz[(minGr+maxGr)/2+1].ime[0]== novi.ime[0] && novi.prezime == niz[(minGr+maxGr)/2+1].prezime[0]) || (niz[(minGr+maxGr)/2-1].ime[0]== novi.ime[0] && novi.prezime == niz[(minGr+maxGr)/2-1].prezime[0]))
  46.             return binarnaPocetak(niz, maxGr-1, element, minGr);
  47.             else
  48.             return (minGr+maxGr)/2;
  49.         }
  50.  
  51.         else if(element < niz[(minGr+maxGr)/2])
  52.         {
  53.             return binarnaPocetak(niz, (minGr+maxGr)/2-1, element, minGr);
  54.         }
  55.  
  56.         else
  57.         {
  58.             return binarnaPocetak(niz, maxGr, element, (minGr+maxGr)/2+1);
  59.         }
  60.     }
  61.  
  62. }
  63.  
  64. string dajEmail(Student studenti[], int brojStudenata, Student novi)
  65. {
  66.     int broj=binarnaKraj(studenti, brojStudenata, novi)-binarnaPocetak(studenti, brojStudenata, novi);
  67.  
  68.      string s1=novi.ime[0];
  69.      string s2=novi.prezime;
  70.      char s3=char(broj);
  71.      s1+=s2;
  72.     return s1+=broj;
  73. }
  74.  
  75. int main()
  76. {
  77.     Student niz[2]= {{"Adijata", "Vukas"}, {"Adela", "Vukas"}};
  78.  
  79.     cout << dajEmail(niz, 2 , {"Amela", "Vukas"});
  80.  
  81.     return 0;
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement