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;
}