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