Sì ... puoi farlo.
P.S. Qui ci si dà del tu non del "lei" ...
Sì ... puoi farlo.
P.S. Qui ci si dà del tu non del "lei" ...
No MP tecnici (non rispondo nemmeno!), usa il forum.
Beh, era per educazioneComunque proviamo così .. le farò sapere.
ho fatto così ed il risultato è identico. Mi risulta tutto vuoto. Le mostro:
codice:struct al { char materia[15]; int matricola; float orale; float scritto; } alunno[32], app; void ordinastruct(int ind, struct al struttura[]){ int i,j,k,t,min,a; float a1, a2; for(i=0; i<ind-1; i++){ for(j=0; j<ind; j++){ if(struttura[i].matricola<struttura[j].matricola){ app=struttura[i]; struttura[i]=struttura[j]; struttura[j]=app; }}}}codice:.... tutta l'acquisizione .... ordinastruct(32, alunno); for(i=0; i<total; i++){ printf("\n\nMatricola: %d", alunno[i].matricola); printf("\n\n\t\t"); for(y=0; alunno[i].materia[y]!='\0'; y++){ printf("%c", alunno[i].materia[y]); } printf("\n\n\t\t\t\t%1.1f", alunno[i].scritto); printf("\n\n\t\t\t\t\t\t%1.1f", alunno[i].orale); } getch(); return 0; }
Intanto dovrebbe essere
for(j=i+1; j<ind; j++){
e poi assicurati che i dati siano stati effettivamente inseriti nel vettore prima di ordinarlo.
Se qualcosa ancora non va, posta tutto il codice possibilmente completo e compilabile per controllarlo.
No MP tecnici (non rispondo nemmeno!), usa il forum.
Salve, è vero .. è stata una svista. Così funziona. Solo che se cambio il verso di paragone (da minore imposto maggiore per un ordinamento crescente, non funziona +).
In che senso "non funziona" ?
No MP tecnici (non rispondo nemmeno!), usa il forum.
Mi stampa tutto 0 .. :/
Dipende dal contenuto iniziale del vettore, che noi non possiamo controllare dal forum ...
No MP tecnici (non rispondo nemmeno!), usa il forum.
Però è comunque strano che in senso decrescente funzioni, io senso crescente no. Un'altra cosa: perchè nello scambio di strutture in un array non bisogna scambiare tutti i valori della struttura ? Cioè qual è la spiegazione di ciò a livello logico ?
Non è strano ... una spiegazione ci sarà. E deve essere, come ti ho detto, nei dati di partenza.Originariamente inviato da djremix
Però è comunque strano che in senso decrescente funzioni, io senso crescente no.
Probabilmente hai degli elementi del vettore vuoti e, se li ordini in un senso, li vedi subito, altrimenti non li vedi ... insomma una spiegazione ci deve essere...
Non ho capito cosa intendi. In realtà tu scambi tutti i valori.Un'altra cosa: perchè nello scambio di strutture in un array non bisogna scambiare tutti i valori della struttura ? Cioè qual è la spiegazione di ciò a livello logico ?
No MP tecnici (non rispondo nemmeno!), usa il forum.