Ok cambiato tutto
però non mi legge il secondo array
codice:#include<stdio.h> void merge(float x[],float j[],float k[],int n,int m); int main() { int i,v,n,m,b; float x[100],j[100],k[200]; printf("Inserisci la dimensione del primo array : "); scanf("%d",&n); printf("inserisci la dimensione del secondo array : "); scanf("%d",&m); for(i=0;i<n;i++) { printf("Inserisci il %d elemento del primo array: ",i+1); scanf("%f",&x[i]); } for(v=0;v<m;v++) { printf("Inserisci il %d elemento del secondo array: ",v+1); scanf("%f",&j[v]); } b=n+m; merge(x,j,k,n,m); printf("l'array unito è: "); for(i=0;i<b;i++) { printf("%f \n",k[i]); } system("pause"); return 0; } void merge(float x[],float j[],float k[],int n,int m)/*gli indici non si passano*/ { int b,i,v; b=0; i=0; v=0; while ((i<n)&&(v<m)) { if (x[i]<j[v]) { k[b]=x[i]; i++; } else { k[b]=j[v]; v++; } b++; } if (i>n) { for (b;b<(n+m);b++) { k[b]=j[v]; v++; } } else { for(b;b<(n+m);b++) { k[b]=x[i]; i++; } } }

Rispondi quotando