#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct persona{char *nome;
char *cognome;};
typedef struct persona id;
struct partecipante{id *utente;
unsigned short codice;};
typedef struct partecipante Partecipante;
void ordina_conc(struct partecipante concorrente[], int n);
void val_min_ind(struct partecipante concorrente[],int n, int *indice_min);
void scambiare_ST(struct partecipante *a, struct partecipante *b);
int main()
{
Partecipante concorrente[2];
concorrente[0].utente->nome="Mirko";
concorrente[0].utente->cognome="Zammartino";
concorrente[0].codice=001;
concorrente[1].utente->nome="Rita";
concorrente[1].utente->cognome="Arpaia";
concorrente[1].codice=002;
printf("Concorrenti ordinati alfabeticamente:\n");
ordina_conc(concorrente, 2);
printf("Hello world!\n");
return 0;
}
void ordina_conc(Partecipante concorrente[], int n)
{
int i, indice_min;
for(i=0;i<n-1;i++)
{
val_min_ind(&concorrente[i],n-1, &indice_min);
scambiare_ST(&concorrente[i],&concorrente[indice_min+i]);
}
}
void val_min_ind(Partecipante concorrente[],int n, int *indice_min)
{
char *min_array;
int i;
min_array= concorrente[0].utente->cognome;
puts("Copia effettuata\n");
*indice_min=0;
for (i=1;i<n;i++)
{
if(strcmp(concorrente[i].utente->cognome,min_array)<0)
{
min_array=concorrente[i].utente->cognome;
*indice_min=i;
puts("Scambio effettuato.\n");
}
}
}
void scambiare_ST(Partecipante *a, Partecipante *b)
{
Partecipante temp;
temp=*a;
*a=*b;
*b=temp;
}