Program ma mieć funkcję realizującą sortowanie listy rosnąco wg dat urodzenia (od najstarszej do najmłodszej). Mam problem z funkcją składniową, która zamienia miejscami dwa sąsiednie elementy listy. Zamiana ma być wykonywana na wskaźnikach.
#include
class osoba
{
public:
char nazwisko[20];
long int dataur;
osoba* nast;
static int liczbaosob;
osoba();
};
osoba *poczatek=NULL;
int osoba::liczbaosob=0;
osoba::osoba()
{
cout << "Podaj nazwisko: ";
cin >> nazwisko;
cout << "Odaj date urodzenia: ";
cin >> dataur;
nast = poczatek;
poczatek = this;
liczbaosob++;
};
void drukuj()
{
osoba *wsk=poczatek;
cout << endl;
while (wsk !=NULL)
{
cout << wsk->nazwisko << " " << wsk->dataur << endl;
wsk = wsk->nast;
};
cout << "Liczba osob = " << osoba::liczbaosob << endl;
};
void sortuj()
{
int i,j;
long int tmp;
long int tablica[20];
for (i=0;i<=3; i++)
for (j=0;j<=3; j++)
if (tablica[j]>tablica[j+1])
{
tmp = tablica[j];
tablica[j] = tablica[j+1];
tablica[j+1] = tmp;
}
cout << "\n\n";
};
int main()
{
for (int i=1; i<=3; i++) new(osoba);
drukuj();
system("PAUSE");
return EXIT_SUCCESS;
}