El ejercicio es el siguiente:
"Escribir un programa al que se le dé como entrada dos arrays de enteros
ordenados de forma creciente, y devuelva como salida un array ordenado de
forma creciente formado por los elementos de las entradas y sin incluir los elementos repetidos."
Éste es el código que tengo hasta ahora, pero se me repiten los valores:
Código:
#include <iostream>
#include <stdlib.h>
#include <string.h>
using namespace std;
int main()
{
int V1[100],V2[100],V3[200];
int n1,n2,n3,i,j,k,l;
cout<<"Ingrese la dimension del vector 1: "<<endl;
cin>>n1;
cout<<endl;
cout<<"Ingrese los elementos del vector 1: "<<endl;
for(i=0;i<n1;i++){
cin>>V1[i];
}
cout<<endl;
cout<<"Ingrese la dimension del vector 2: ";
cin>>n2;
cout<<endl;
cout<<"Ingrese los elementos del vector 2: "<<endl;
for(i=0;i<n2;i++){
cin>>V2[i];
}
j=0;//indice para el primer vector
k=0;//indice para el segundo vector
l=0;//indice para el tercer vector
while ((j<n1)&&(k<n2)){
if(V1[j]<V2[k]){
V3[l]=V1[j];
j++;
}
else{
V3[l]=V2[k];
k++;
}
l++;
}
for(i=j;i<n1;i++){
V3[l]=V1[i];
l++;
}
for(i=k;i<n2;i++){
V3[l]=V2[i];
l++;
}
n3=l;// tamaño del vector tres
cout<<endl;
cout<<"El Vector 3 es: "<<endl;
cout<<endl;
for(i=0;i<n3;i++){
cout<<"|"<<V3[i];
}
cout<<"|"<<endl;
cout<<endl;
system("pause");
return 0;
}
Si saben cómo, me haríais un gran favor! Gracias
LGG