salave a tutti. Dovrei progettare un programma che gestisca una rubrica. ogni contatto memorizzato presenta: nome,cognome,telefono,web,mail.
codice:typedef struct{ char nome[MAX_DIM]; char cognome[MAX_DIM]; char telefono[MAX_DIM]; char web[MAX_DIM]; char mail[MAX_DIM]; }contatto; struct ElementoAgenda; typedef ElementoAgenda * PuntElementoAgenda; typedef struct ElementoAgenda{ contatto persona; PuntElementoAgenda Next; }ElementoAgenda;
Il problema è che non riescoa definire una funzione per gli inserimenti successivi al primo. Ho provato a farne una ma non ho neanche ben capito se il confronto tra due cognomi(per l'inserimento ordinato) vada fatto con strcmp.
Questo è quello che ho provato a fare. Quando inseriamo il nuovo contatto(in particolare dal secondo in poi che immettiamo) la funzione dovrebbe leggerne il cognome,confrontarlo con quelli già in memoria, dopodichè inserirlo in quella determinata posizione.codice:void Inserisci(PuntElementoAgenda Agenda, ElementoAgenda nuovo){ PuntElementoAgenda prec,succ,temp; prec=Agenda; succ=prec->Next; while((prec!=NULL)&&(strcmp(nuovo.persona.cognome,prec->persona.cognome)>0)){ prec=prec->Next; } temp=PrimoInserimento(Agenda,nuovo); while((prec!=NULL)&&(strcmp(nuovo.persona.cognome,prec->persona.cognome)>0)){ temp->Next=succ; prec->Next=temp; } }
Grazie in anticipo, spero possiate aiutarmi!

Rispondi quotando