Tengo un ejercicio en el cual tengo 2 arreglos y tengo que crear un tercer arreglo que contenga los dos arreglos anteriores de manera ordenada.
No puedo usar arreglos auxiliares, tampoco puedo usar burbujeo.
Lo hago y el codigo tiene logica, pero no logro que funcione correctamente.
Ejemplo:
Arreglo 1: 1,2,3,6
Arreglo 2. 4,5,8,9.
Resultado: 1,2,3,4,5,6,8,9.
Resultado Que Me Da a mi (Horrible) : 1,2,3,6
Código
#include <stdio.h> #include <stdlib.h> void CARGA(int arreglo[10]); void imprimir(int arreglo[20]); void unir(int arreglo1[10],int arreglo2[10],int resultante[20]); int main() { int arreglo1[10]={0}; int arreglo2[10]={0}; int resultante[20]={0}; CARGA(arreglo1); CARGA(arreglo2); unir(arreglo1,arreglo2,resultante); imprimir(resultante); return 0; } void CARGA(int arreglo[10]) { int i=0; int numero; while(numero!=0) { arreglo[i]=numero; i++; } arreglo[i]=0; } void imprimir(int arreglo[20]) { int i=0; for(i=0;i<10;i++) { if(arreglo[i]!=0) { } } } void unir(int arreglo1[10],int arreglo2[10],int resultante[20]) { int i=0,j=0,k=0; while(arreglo1[i]!=0) { while(arreglo2[j]!=0) { if(arreglo1[i]<arreglo2[j]) { resultante[k]=arreglo1[i]; } else { resultante[k]=arreglo2[j]; } j++; } j=0; k++; i++; } resultante[k]=0; }