Visto che "a te funziona in tutte e due i casi" scrivi il codice funzionante...
Per quanto riguarda il riempimento del vettore di strutture utilizzando la notazione char *s (puntatore a char) non permette il riempimento "corretto" dei campi della struttura, cosa che non accade utilizzando la notazione char s[200] (vettore di char, che è un puntatore all'indirizzo base del vettore); per quanto riguarda il secondo caso l'ordinamento tramite l'algoritmo del bubblesort funziona solamente se si usa la notazione char *s e non char s[200].
e cmq dato che sono nuovo del forum potresti spostare la discussione dato che non ne sono capacecodice:void sort(Studente s[], int dim) { Studente temp; int i, ordinato=0; while(!ordinato) { dim--; ordinato=1; for(i=0;i< dim;i++) if(strcmp(s[i].cognome,s[i+1].cognome)>0) { temp.nome=s[i].nome; //incompatible types when assigning to type ‘char[200]’ from type ‘char *’ temp.cognome=s[i].cognome; temp.matricola=s[i].matricola; temp.iscrizione=s[i].iscrizione; s[i].nome=s[i+1].nome; s[i].cognome=s[i+1].cognome; s[i].matricola=s[i+1].matricola; s[i].iscrizione=s[i+1].iscrizione; s[i+1].nome=temp.nome; s[i+1].cognome=temp.cognome; s[i+1].iscrizione=temp.iscrizione; s[i+1].matricola=temp.matricola; ordinato=0; } }

Rispondi quotando