Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[Zadatak] Funkcija qsort()

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Funkcija qsort()

[ Pregleda: 2727 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

leteci_medvjedic

Član broj: 80182
Poruke: 13
*.cmu.carnet.hr.



Profil

icon [Zadatak] Funkcija qsort()25.05.2008. u 13:53 - pre 193 meseci
evo dio koda...

Code:

struct radnik
        {
            char ime[32];
            char prezime[33]; 
            float placa;
            char poduzece[32];
        }rdnk[9];

void f1(){
        for (i=0;i<10;i++)
        {
            cout<<"\nRadnik "<<i+1<<endl;
            cout<<"Ime: ";
            cin>>rdnk[ i ].ime;
            cout<<"Prezime: ";
            cin>>rdnk[ i ].prezime;
            cout<<"Placa: ";
            cin>>rdnk[ i ].placa;
            cout<<"Poduzece: ";
            cin>>rdnk[ i ].poduzece;
        }//for
}

to je znači funkcija u koju upisujemo u ovu gore strukturu...
i sad u drugoj funkciji trebam sortirati te radnike po visini plaće upotrebom quick sorta... hmm... i to nikak da mi krene... znam da ima u cstdlib-u funkcija qsort() al ne znam kak da ju upotrijebim..il kak da složim nešto od tog...

molim pomoćććććććććććććććć....

hvalaaaaaaaaaaa...

[Ovu poruku je menjao X Files dana 25.05.2008. u 15:33 GMT+1]

[Ovu poruku je menjao leteci_medvjedic dana 25.05.2008. u 17:19 GMT+1]
 
Odgovor na temu

karas

Član broj: 5574
Poruke: 482
*.static.sbb.rs.



+1 Profil

icon Re: [Zadatak] Funkcija qsort()26.05.2008. u 08:31 - pre 193 meseci
qsort() kao prvi argument prihvata pokazivac na pocetak niza, ovde bi to bio rdnk. Drugi argument je broj elemenata niza, 9 u ovom slucaju. Treci argument je velicina tipa koji se nalazi u nizu, ovde je sizeof(struct radnik).
Poslednji argument je pokazivac na funkciju koja definise poredjenje medju elementima tipa koji se nalazi u nizu. Ovde bi to bilo nesto tipa
Code:

int compare(const void* a, const void* b)
{
  struct radnik* aa = static_cast<struct radnik*>(a);
  struct radnik* bb = static_cast<struct radnik*>(b);
// ovde sad definisi kriterijum po kojem ce se porediti radnici, neka bude npr. po velicini plate
  if (aa->placa < bb->placa)
    return -1;
  else if (aa->placa > bb->placa)
    return 1;
  return 0;
}

Ovo je pisano iz glave, tako da treba da testiras kod. Na http://www.cppreference.com/stdother/qsort.html imas nesto detaljnije uputstvo.
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
 
Odgovor na temu

leteci_medvjedic

Član broj: 80182
Poruke: 13
193.198.27.*



Profil

icon Re: [Zadatak] Funkcija qsort()26.05.2008. u 08:45 - pre 193 meseci
hvala...
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Funkcija qsort()

[ Pregleda: 2727 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.