Advertisement
Guest User

Vektor rendező

a guest
Jun 28th, 2013
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.98 KB | None | 0 0
  1. // itt egy függvény, ami megállapítja egy számról hogy prím-e, vagy sem, és logikai értékkel tér vissza, true vagy false
  2. bool isPrime(int a)
  3. {
  4.     if(a<=1)
  5.         return false;
  6.     else if(a==2)
  7.         return true;
  8.     else
  9.     {
  10.         for(int i=2; i<sqrt((float)a); i++)
  11.         {
  12.             if( (a%i)==0 )
  13.                 return false;
  14.         }
  15.     }
  16.     return true;
  17. }
  18.  
  19. // ez pedig a rendező függvény, ami felhasználj az isPrime() függvényt
  20. void rendez(vector<int> v)
  21. {
  22.     // létrehoz két vektort prímeknek illetve nem prímeknek
  23.     vector<int> prim;
  24.     vector<int> nem;
  25.  
  26.     // végigmegy a paraméterként megadott vektoron, és attól függően hogy a paraméter vektor adott eleme
  27. prím-e     vagy sem, belerakja őket a megfelelő vektorba
  28.     for(unsigned int i=0; i<v.size(); i++)
  29.     {
  30.         if(isPrime(v[i]))
  31.             prim.push_back(v[i]);
  32.         else
  33.             nem.push_back(v[i]);
  34.     }
  35.  
  36.     // itt pedig két rendezést láthatsz, mindkettő két egymásba ágyazott for ciklus segítségével rendezi a két vektort a feladatnak megfelelően a prímeket növekvőbe, a másikat pedig csökkenőbe
  37.     for(unsigned int i=0; i<prim.size()-1; i++)
  38.     {
  39.         for(unsigned int j=0; j<prim.size()-1; j++)
  40.         {
  41.             if(prim[j]>prim[j+1])
  42.             {
  43.                 int temp = prim[j];
  44.                 prim[j] = prim[j+1];
  45.                 prim[j+1] = temp;
  46.             }
  47.         }
  48.     }
  49.     for(unsigned int i=0; i<nem.size()-1; i++)
  50.     {
  51.         for(unsigned int j=0; j<nem.size()-1; j++)
  52.         {
  53.             if(nem[j]<nem[j+1])
  54.             {
  55.                 int temp = nem[j];
  56.                 nem[j] = nem[j+1];
  57.                 nem[j+1] = temp;
  58.             }
  59.         }
  60.     }
  61.  
  62.     // végül kiíratjuk mindkét vektor elemeit, és kész is a feladat :)
  63.     for(unsigned int i=0; i<prim.size(); i++)
  64.         cout << prim[i] << " ";
  65.     for(unsigned int i=0; i<nem.size(); i++)
  66.         cout << nem[i] << " ";
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement