allora, sto tentando di fare una pila di iscritti a vari corsi in una scuola. Inserendo il corso, mi deve stampare tutti gli iscritti a quel corso, peccato che non funzioni
Posto solo la parte importante e non tutto il sorgente, perchè è lunghetto
codice:
int ric_cor( const lista_ptr pila) {
lista_ptr temp;
char corso_ric[SIZE];
printf ("Inserisci corso : ");
scanf ("%s", corso_ric);
temp = cerca_rice(pila, corso_ric);
if ( temp == NULL) {
printf("Persona non presente\n");
return FALSE;
}
else {
visualizza(temp);
return TRUE;
}
}
lista_ptr cerca_rice ( const lista_ptr pila , char * corso_ric) {
while (pila != NULL) {
if ( strncmp(pila->persona.corso, corso_ric, SIZE) == 0){
return pila;
}
else cerca_rice(pila->next, corso_ric);
}
printf(" elemento non presente\n"); // se siamo arrivati qui non c'è l'elemento nella lista
}
void visualizza(const lista_ptr pila)
{
printf("\n------------------------");
printf (" \nNome: %s\n", pila->persona.nome);
printf(" Cognome: %s\n", pila->persona.cognome);
printf(" Indirizzo: %s\n", pila->persona.indirizzo);
printf(" Corso: %s\n", pila->persona.corso);
printf("------------------------\n");
visualizza(pila->next); //se inserisco questa istruzione, windows crasha, se non la inserisco, non mi stampa nulla
}
Avrei anche un altro problemino, ma quello spero di risolverlo da solo