ok ora va bene!! non capisco solo perchè hai usato flag con 0 e 1 invece di usare un bool con true e false!Originariamente inviato da oregon
Non è detto che ordini tutto in una sola passata ... devi ripetere la for finché non è tutto ordinato.
E poi devi fermare il for un carattere prima altrimenti x[i+1] va oltre ...
codice:void alfasort(char x[]){ char temp; int flag=1; while(flag) { flag=0; for(int i=0; i<strlen(x)-1; i++) { if(x[i]>x[i+1]) { temp=x[i]; x[i]=x[i+1]; x[i+1]=temp; flag=1; }//if }//for } }
comunque non sarebbe meglio inserire un ciclo for al posto del while?
cosi mi funziona: for(int pass=0; pass<strlen(x); pass++)

Rispondi quotando