Ciao a tutti, come da titolo, ho sviluppato un programma C che ordina un vettore di interi. Il programma funziona correttamente ma, arrivato alla fine dell'ordinamento, il programma si blocca (ripeto, pur mostrando il vettore ordinato). Qualcuno potrebbe dirmi dove è l' errore? Grazie in anticipo.
codice:#include <stdio.h>#include <stdlib.h> #define max 10 void scambia (int array[], int x, int z){ int tmp; tmp=array[x]; array[x]=array[z]; array[z]=tmp; } void bubblesort (int array[], int dim, int i){ int x, z; for(x=1;x<dim;x++){ for(z=dim-1;z>=x;z--){ if (array[z-1]>array[z]){ scambia (array, z-1, z); } } } printf("\nArray dopo l'ordinamento... "); for(i=0;i<dim;i++){ printf("%d ", array[i]); } printf("\n"); } int main (){ int array[max]; int dim=0; int i=0; int x,z; printf("\nQuanti numeri vuoi inserire? "); scanf("%d",&dim); for(i=0;i<dim;i++){ printf("\nInserisci %do numero: ", (i+1)); scanf("%d", &array[i]); } printf("\nMostro i numeri dell'array (prima dell'ordinamento): "); for(i=0;i<dim;i++){ printf("\n%d ", array[i]); } printf("\n"); printf("\nOrdino i numeri... "); bubblesort (array, dim, i); scambia (array, x, z); printf("\n"); system ("pause"); return 0; }

Rispondi quotando
