• Informatica
  • LINGUAGGIO C, PROBLEMA CON ORDINAMENTO DI UN ELENCO TELEFONICO.

    closed post
antoniocolucci98
antoniocolucci98 - Ominide - 6 Punti
Salva

LINGUAGGIO C.
Salve a tutti, ho un problema con l'ordinamento per cognome e nome di un elenco telefonico. Ho usato l'algoritmo di ordinamento per selezione di massimo, ma ho problemi con la function "scambiare" siccome quando eseguo il programma oltre a non scambiare i cognomi mi sfasa anche le lettere di questi. Premetto che nella dichiarazione della struct non ho usato i puntatori, ma ho trattato i vari campi (cognome,nome,domicilio,telefono) come stringhe.

void ord_sel_max (Elenco array[],int n)
{
int i, indice_max;
char max_array;
for(i=n-1;i>0;i--)

{
max_val_ind(&array[0], i+1,&max_array, &indice_max);

scambiare(&array, &array[indice_max]);

}
}

void max_val_ind (Elenco a[], int n, char max_array[], int i_max)

{

int idx;

max_array = a[0].cognome;
i_max = 0;

for (idx=1;idx<n;idx++)

if( strcmp(max_array, a[idx].cognome)> 0)
{
max_array = a[idx].cognome;
i_max =idx;
}
}

void scambiare(char *s1 ,char *s2)
{
char *temp;
temp = *s1;
*s1 = *s2;
*s2 = temp;
}

Come potrei risolvere ?

Questo topic è bloccato, non sono ammesse altre risposte.
Come guadagno Punti nel Forum? Leggi la guida completa
Registrati via email