#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define golemina 3
struct Zapis
{
char Ime[20];
char Prezime[20];
int nomer;
};
int sporediZapisi(struct Zapis * a, struct Zapis * b)
{
int ret = 0;
if (a!=NULL && b!=NULL)
{
ret = strcmp(a->Ime, b->Ime);
if (ret == 0)
{
ret = strcmp(a->Prezime, b->Prezime);
if (ret == 0)
{
if (a->nomer < b->nomer)
ret = -1;
else if (a->nomer > b->nomer)
ret = 1;
else
ret = 0;
}
}
}
return ret;
}
void podrediZapisi(struct Zapis ** pZapisi, int len)
{
//
int i,j, najmalIndex;
struct Zapis * pTmp;
for (i=0;i<len-1; i++)
{
najmalIndex = i;
for (j=i+1; j<len; j++)
{
if (sporediZapisi(pZapisi[j], pZapisi[i]) < 0) // eve ja taa sporedbata.
najmalIndex = j;
}
if (najmalIndex != i)
{
//zameni
pTmp = pZapisi[i]; pZapisi[i] = pZapisi[najmalIndex]; pZapisi[najmalIndex] = pTmp;
}
}
}
int main()
{
int i;
//ova ni treba. tuka gi smestuvame pointerite kon zapisi za lesno sortiranje
struct Zapis * pZapisi[golemina];
//alocirame eden po eden, 3 zapisi
for (i = 0; i<golemina; i++)
pZapisi[i] = (struct Zapis *)malloc(sizeof(struct Zapis));
//citame od standarden vlez/ zmeni go po potreba
for ( i = 0; i<golemina; i++)
{
scanf("%s %s %d", pZapisi[i]->Ime, pZapisi[i]->Prezime, &pZapisi[i]->nomer);
}
printf("%s", "-----------------------------------------\n");
podrediZapisi(pZapisi, golemina);
//pecatime
for ( i = 0; i<golemina; i++)
printf("%s %s %d\n", pZapisi[i]->Ime, pZapisi[i]->Prezime, pZapisi[i]->nomer);
system("PAUSE");
return 0;
}