Zdefiniować N - elementową tablicę wskaźników na stuktury typu stuct tosoba {char naz[20]; unsigned rok, mies, dzien; long id}, gdzie N jest stałą w programie. Zdefiniować zmienną unsigned ile=0, która ma służyć do przechowywania liczby wskaźników wsprowadzonych do tablicy. Opracować następujące funkcje:
a) tworzącą zmienną dynamiczną typu tosoba oraz inicjującą zmienną losowymi wartościami..
[...]
e) sortującą elementy tablicy wskaźników w taki sposób, aby wskazywane stuktury tworzyły ciąg uporządkowany według nazwisk (należy zamieniać wskaźniki bez modyfikacji położenia stuktur w pamięci); wykorzystać funkcję qsort
Kod: Zaznacz cały
//w pliku nagłówkowym
//...
struct tosoba
{
char naz[20];
unsigned rok,mies,dzien;
long id;
};
const int N=4;
tosoba *t[N];
unsigned ile=0;
void funkcja1(void)
void sortuj(void);
//...
//w I pliku do funkcji
void funkcja1(void)
{
tosoba *a=new tosoba;
t[ile]=a;
//...
ile++;
}
//w II pliku do funkcji
void sortuj(void)
{
qsort(t,ile,sizeof(t[0]),por1);
}
//w III pliku do funkcji
int por1(const void *a, const void *b)
{
tosoba *x=(tosoba*)a,*y=(tosoba*)b;
return strcmp(x->naz,y->naz);
}
Szczerze mówiąc nie wiem co się w danej chwili sortuje. ;/
Pewnie błąd tkwi w funkcji por1, ale nie wiem jak to zrobić. Proszę o pomoc.