Praticamente il programma funziona fino alla funzione stampa dopodichè va in blocco..Adesso il resto del codice , so che così non si poteva fare però l'ho lasciato per fare capire quello che volvo fare...Praticamente dopo che questi due vettori venivano ordinati, il vettore v3 dovrebbe essere la somma dei due vettori e dovrebbe anch'esso essere ordinato...Il problema è che io non saprei come farlo l'ho fatto così perchè so che una volta usata la funzione riempi il vettore resta in quel modo perchè riempendolo, vengono modificate le aree di memoria relative al vettore...Solo che il programma non va..Volevo sapere come bisognava fare...Grazie in anticipocodice:#include<stdio.h> #define N 3 #define M 4 #define C 7 float v1[N],v2[M],v3[C]; void flush(void); void riempi(float [],int); void stampa(float [],int); void scambia(float [],unsigned long,unsigned long); void bubblesort(float[],int); main(){ unsigned long i,j,k; riempi(v1,N); riempi(v2,M); bubblesort(v1,N); bubblesort(v2,M); stampa(v1,N); stampa(v2,M); while(i<N && j<M){ if(v1[i]<v2[j])v1[i++]=v3[k++]; else if(v2[j]<v1[i])v2[j++]=v3[k++]; } while(i<N)v1[i++]=v3[k++]; while(j<M)v2[j++]=v3[k++]; stampa(v3,C); getchar(); } void flush(void){ fflush(stdin); } void riempi(float v[],int dim){ unsigned long i; for(i=0;i<dim;i++){ printf("inserisci l'elemento v[%lu]",i); scanf("%f",&v[i]); flush(); } } void stampa(float v[],int dim){ unsigned long i; for(i=0;i<dim;i++) printf("v[%lu]=%f",i,v[i]); getchar(); } void scambia(float v[],unsigned long i, unsigned long j){ float tmp; tmp=v[i]; v[i]=v[j]; v[j]=tmp; } void bubblesort(float v[],int dim){ unsigned long i,j; short ordinato =0; for(j=0;j<dim-1 && !ordinato;j++){ ordinato=1; for(i=dim-1;i>j;i--) if(v[i]<v[i-1]){ scambia(v,i,i-1); ordinato=0; } } }