struct nazwa{
typ1 pole1:
typ2 pole2;
...
};
Na przykład:
struct pracownik{
char nazwisko[15];
int pensja;
};
struct pracownik p, *w, t[10];
Po tych deklaracjach utworzono tablicę 10-elementową struktur, zmienną typu struktura, i wskaźnik na zmienną tego typu.
Aby się odwołać do pola struktury stosujemy operator . lub-> (w przypadku wskaźników):
p.pensja=10; w->pensja=20; // lub inaczej (*w).pensja=20;
// deklaracja wskaźnika do funkcji
int (*wsk)(int);
int fun(int arg){
return arg*arg;
}
// przykładowo poprawne są operacje
wsk=fun;
i=wsk(10);
Funkcja qsort, wykonująca sortowanie wg algorytmu Quick Sort
ma następujący nagłówek:
void qsort(void *t,int N,int size,int(*fun)(const void*,const void*));
Przykład: rekordy.cpp.
Przerób swój program Punkty w trójkącie (T_PINTR) wykorzystując struktury i funkcje w taki sposób, aby kod programu był bardziej czytelny, zwarty i łatwiej modyfikowalny.
Utwórz krótszą nazwę dla typu struct pracownik używając deklaracji typedef.
Posortuj elementy z przykładu rekordy.cpp w porządku malejącym względem pensji.
Posortuj elementy z przykładu rekordy.cpp w porządku malejącym względem nazwiska.
Posortuj elementy z przykładu rekordy.cpp względem obu kryteriów tzn. po pierwsze względem nazwiska i jeśli są dwie osoby o tym samym nazwisku, to wtedy względem pensji.
Przerób program w taki sposób, aby w tablicy przechowywano wskaźniki do struktury struct pracownik.
Napisz program, który sortuje słowa leksykograficznie, ale względem dowolnie ustalonej kolejności liter w alfabecie (porównaj zadanie String Compare (PP0504C).