Witam, napisałem taką oto funkcję, która ma za zadanie posortować pracowników w spisie po nazwiskach, a potem po imionach
void sortuj_spis(void)
{
int i, j;
char tempi[IMIE_MAX+1]; //imie
char tempn[NAZW_MAX+1]; //naz
int tempp; //pensja
for(i=0; i<IL_OSOB-1; i++)
{
for(j=i+1; j<IL_OSOB; j++)
{
if (strcmp(spis[i].nazwisko, spis[j].nazwisko) > 0)
{
strcpy(tempn, spis[i].nazwisko);
strcpy(tempi, spis[i].imie);
tempp = spis[i].pensja;
strcpy(spis[i].nazwisko, spis[j].nazwisko);
strcpy(spis[i].imie, spis[j].imie);
spis[i].pensja = spis[j].pensja;
strcpy(spis[j].nazwisko, tempn);
strcpy(spis[j].imie, tempi);
spis[j].pensja=tempp;
}
if (strcmp(spis[i].nazwisko, spis[j].nazwisko) == 0)
{
if (strcmp(spis[i].imie, spis[j].imie) > 0)
{
strcpy(tempi, spis[i].imie);
tempp = spis[i].pensja;
strcpy(spis[i].imie, spis[j].imie);
spis[i].pensja = spis[j].pensja;
strcpy(spis[j].imie, tempi);
spis[j].pensja=tempp;
}
}
}
}
}
Muszę ją udoskonalić tak, aby wykorzystywała funkcję quicksort z własną definicją (chyba qrst(spis,IL.OSOB,sizeof(osoba),strcmp) i potem osoba.cmp(const void *a, const void *b) tylko wtedy wystarczy posortować aby po nazwiskach, moje pytanie brzmi jak to wszystko skleić aby się skompilowało. Za wszystkie odpowiedzi będę bardzo wdzięczny.