Per darti una "traccia", prova a trasformare queste righe (funzionanti) in codice piu' semplice
codice:
const int V1LEN = 10;
const int V2LEN = 10;
int vett1[V1LEN]={6, 7, 10, 11, 12, 13, 19, 28, 33, 40};
int vett2[V2LEN]={2, 3, 6, 8, 9, 20, 21, 24, 28, 30};
int vett3[V1LEN+V2LEN];
int ix1, ix2, ix3;
ix1=ix2=ix3=0;
while(ix3<V1LEN+V2LEN)
vett3[ix3++]= (ix1==V1LEN) ? vett2[ix2++] : ((ix2==V2LEN) ? vett1[ix1++] : ((vett1[ix1]<vett2[ix2]) ? vett1[ix1++] : vett2[ix2++]));
for(ix3=0; ix3<V1LEN+V2LEN; ix3++)
printf("%d ", vett3[ix3]);
printf("\n");