elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  eliminar números repetidos de dos vectores
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: eliminar números repetidos de dos vectores  (Leído 3,761 veces)
creiko

Desconectado Desconectado

Mensajes: 44


Ver Perfil
eliminar números repetidos de dos vectores
« en: 6 Abril 2016, 18:48 pm »

Buenas alguien puede ayudarme en este ejercicio.

Dev-C++


(primero de probarlo de manera que yo ingrese los números como en el ejemplo que pongo ahí bajo)

(si todo sale bien debo probarlo con números al azar, esta parte la se manejar muy bien, la de los números azar )


resulta que debo generar dos vectores A y B y unirlos,

ejemplo
A =  8 , 2 , 1 , 2
B = 5 , 4 , 1 , 8

la union de A y B seria
8 , 2 , 1 , 5 , 4

en el vector A pude eliminar  el numero 2 que esta repetido y me quedo
8 , 2 , 1.  pero el vector B como no se repite pasa igual como esta. el problema es que al unirlos me sale esto, 8,2,1,0,5,4,1,8 y no debería ser así lo correcto seria 8,2,1,5,4,8,1 y de ese union deberia eliminar 8 y 1 del vector B para que me salga  UNION 8,2,1,5,4


mando lo que llevo hecho
por favor seria de gran ayuda

Código
  1. #include "conio.h"
  2. #include "stdio.h"
  3. #include "stdlib.h"
  4. #include "string.h"
  5. #include "windows.h"
  6. #include "iostream"
  7. #include "time.h"
  8.  
  9. int main ()
  10.  
  11. {
  12.        int v_original [4];
  13.        int v_aux [4];
  14.        int v_final [4];
  15.        int cont,num,i,j=0,k,z=0 ;
  16.        int b_original [4];
  17.        int b_aux [4];
  18.        int b_final [4];
  19.        int cont2,num2,i2,j2=0,k2,z2=0 ,c[8];
  20.  
  21.        printf("Programa union de vectores \n\n");
  22.  
  23.        for (i=0; i<4; i++)
  24. {
  25.                printf("Introduce el valor a[%d]:", i);
  26.                scanf("%d",&v_original[i]);
  27.        }
  28.  
  29.        for (i=0;i<4;i++)
  30. {
  31.                cont=0;
  32.                num=v_original[i];
  33.                v_aux[j]=num;
  34.                j++;
  35.                for (k=0;k<4;k++)
  36.                {
  37. if ( v_aux[k] == num )
  38.                           cont++;
  39. }
  40.  
  41.                if ( cont == 1 )
  42. {
  43.                        v_final[z]=num;
  44.                        z++;
  45.                }
  46.        }
  47.  
  48.        printf("\n");
  49.  
  50.        for (i=0; i<4; i++)
  51. {
  52.                printf("Introduce el valor b[%d]: ", i);
  53.                scanf("%d",&b_original[i]);
  54.        }
  55.  
  56.        for (i=0;i<4;i++)
  57. {
  58.                cont2=0;
  59.                num2=b_original[i];
  60.                b_aux[j2]=num2;
  61.                j2++;
  62.                for (k2=0;k2<4;k2++)
  63.                {
  64.                 if ( b_aux[k2] == num2 )
  65.                                cont2++;
  66. }
  67.  
  68.                if ( cont2 == 1 )
  69. {
  70.                        b_final[z2]=num2;
  71.                        z2++;
  72.                }
  73.        }
  74.  
  75.       printf("\n");
  76.        printf("El a es: \n");
  77.        for (i=0;i<z;i++)
  78.        printf ("%d \n",v_final[i]);
  79.        printf("\n");
  80.  
  81.  
  82.        printf("El b es: \n");
  83.        for (i=0;i<z2;i++)
  84.        printf ("%d \n",b_final[i]);
  85.  
  86.        for(i=0;i<4;i++)
  87.        {
  88. c[i]=v_final[i];
  89. }
  90. for(i=0;i<4;i++)
  91. {
  92. c[i+4]=b_final[i];
  93. }
  94. printf("\n");
  95. printf("La union de los vectoes a y b sera:");
  96. for(i=0;i<8;i++)
  97. printf(" %d ",c[i]);
  98. }

   
    :rolleyes: :rolleyes:




Mod: Los códigos deben ir en etiquetas GeSHi y cada cosa va en su subforo, esto es C y allí va


« Última modificación: 6 Abril 2016, 19:07 pm por engel lex » En línea

LaiaxanIV

Desconectado Desconectado

Mensajes: 57


Ver Perfil
Re: eliminar números repetidos de dos vectores
« Respuesta #1 en: 6 Abril 2016, 20:39 pm »

No se si es esto lo que quieres, miratelo y dime.
Está claro que hay muchas maneras más eficientes de hacerlo, pero he querido tener 4 vectores. El a, el b, el conc (concatenación) y el uni (unión).
Código
  1. #include "iostream"
  2. using namespace std;
  3. int main ()
  4. {
  5.        int a[4];
  6.        int b[4];
  7. int conc[8];
  8. int cont = 0;
  9. bool rep[8];
  10.  
  11.        for(int i = 0; i < 4; ++i){
  12.         cout << "Introduce a["<<i<<"]: ";
  13.         cin >> a[i];
  14. conc[i] = a[i];
  15. rep[i]=false;
  16. }
  17. for(int i = 0; i < 4; ++i){
  18.         cout << "Introduce b["<<i<<"]: ";
  19.         cin >> b[i];
  20. conc[i+4] = b[i];
  21. rep[i+4]=false;
  22. }
  23. for(int i = 0; i < 8; ++i){
  24. for(int j = 0; j < 8; ++j){
  25. if(i != j && conc[i] == conc[j] && !rep[j] && !rep[i]){
  26. rep[j] = true;
  27. ++cont;
  28. }
  29. }
  30. }
  31.  
  32. int uni[8-cont];
  33. int j = 0;
  34. int i = 0;
  35. while(j < 8-cont){
  36. if(!rep[i]){
  37. uni[j] = conc[i];
  38. ++j;
  39. }
  40. ++i;
  41. }
  42.  
  43. cout << "Union de a y b:" << endl;
  44. for(int i = 0; i < 8-cont; ++i){
  45. cout <<
  46. uni[i] << " ";
  47. }
  48. }
  49.  


En línea

creiko

Desconectado Desconectado

Mensajes: 44


Ver Perfil
Re: eliminar números repetidos de dos vectores
« Respuesta #2 en: 6 Abril 2016, 21:22 pm »

No se si es esto lo que quieres, miratelo y dime.
Está claro que hay muchas maneras más eficientes de hacerlo, pero he querido tener 4 vectores. El a, el b, el conc (concatenación) y el uni (unión).
Código
  1. #include "iostream"
  2. using namespace std;
  3. int main ()
  4. {
  5.        int a[4];
  6.        int b[4];
  7. int conc[8];
  8. int cont = 0;
  9. bool rep[8];
  10.  
  11.        for(int i = 0; i < 4; ++i){
  12.         cout << "Introduce a["<<i<<"]: ";
  13.         cin >> a[i];
  14. conc[i] = a[i];
  15. rep[i]=false;
  16. }
  17. for(int i = 0; i < 4; ++i){
  18.         cout << "Introduce b["<<i<<"]: ";
  19.         cin >> b[i];
  20. conc[i+4] = b[i];
  21. rep[i+4]=false;
  22. }
  23. for(int i = 0; i < 8; ++i){
  24. for(int j = 0; j < 8; ++j){
  25. if(i != j && conc[i] == conc[j] && !rep[j] && !rep[i]){
  26. rep[j] = true;
  27. ++cont;
  28. }
  29. }
  30. }
  31.  
  32. int uni[8-cont];
  33. int j = 0;
  34. int i = 0;
  35. while(j < 8-cont){
  36. if(!rep[i]){
  37. uni[j] = conc[i];
  38. ++j;
  39. }
  40. ++i;
  41. }
  42.  
  43. cout << "Union de a y b:" << endl;
  44. for(int i = 0; i < 8-cont; ++i){
  45. cout <<
  46. uni[i] << " ";
  47. }
  48. }
  49.  





muchas gracias era justo lo que necesitaba
En línea

lfgmespino

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: eliminar números repetidos de dos vectores
« Respuesta #3 en: 7 Abril 2016, 00:47 am »

Yo lo haría así. (Esta sin optimizar).
Sdos.
Código
  1. #include "stdio.h"
  2. #include "stdlib.h"
  3. #include "string.h"
  4. #include "time.h"
  5.  
  6. enum bool {false, true}
  7.  
  8. int main ()
  9.  
  10. {
  11.        int v_original [4];
  12.        int b_original [4];
  13.        int final[8]=0;
  14.        int usados[8];
  15.        int i, j, k=0, l=0;
  16.        bool repetido;
  17.        int  contUsados=0;
  18.  
  19.        printf("Programa union de vectores \n\n");
  20.  
  21.        for (i=0; i<4; i++)
  22. {
  23.                printf("Introduce el valor a[%d]:", i);
  24.                scanf("%d",&v_original[i]);
  25.        }
  26.         printf("\n");
  27.  
  28.        for (i=0; i<4; i++)
  29. {
  30.                printf("Introduce el valor b[%d]: ", i);
  31.                scanf("%d",&b_original[i]);
  32.        }
  33.  
  34.        for (i=0;i<4;i++)  { //exploramos uno a uno el vector inicial
  35.         repetido = false; //suponemos que no está repetido
  36.         for (j=0; j<contUsados;j++)   { //pero lo verificamos comprobando el vector de usados
  37.            if (v_original[i] == usados[j]) repetido = true;
  38.            }
  39.                if (repetido == false) { //si no ha sido usado
  40.                 final[k]= v_original[i]; //lo añadimos al vector final y
  41.                 usados[l]= v_original[i];   //anotamos que ha sido usado
  42.                 contUsados++;   //incrementamos el numero de elementos en el vector de usados
  43.                 k++;
  44.                 l++;
  45.                 }  //si ya ha sido usado, no hacemos nada: ni lo anotamos como usado, ni lo copiamos en el vector final
  46.               }
  47.  
  48.        for (i=0;i<4;i++)  {
  49.         repetido = false;    //hacemos lo mismo con el segundo vector
  50.         for (j=0; j<contUsados;j++)  {
  51.            if (b_original[i] == usados[j]) repetido = true;
  52.            }
  53.                if (repetido == false) {              
  54.                 final[k]= b_original[i];
  55.                 usados[l]= b_original[i];
  56.                 contUsados++;
  57.                 k++;
  58.                 l++;
  59.                 }
  60.         }
  61.  
  62.  
  63. printf("\n");
  64. printf("La union de los vectores a y b sera:");
  65. for(i=0;i<k;i++)
  66. printf(" %d ",final[i]);
  67. }
  68.  
  69.  
En línea

HardForo

Desconectado Desconectado

Mensajes: 219


HardForo.com


Ver Perfil WWW
Re: eliminar números repetidos de dos vectores
« Respuesta #4 en: 15 Abril 2016, 20:05 pm »

Creo se deberian encapsular en funciones los aportes que hacen, asi seran de mas ayuda
En línea

HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Numeros aleatorios no repetidos
.NET (C#, VB.NET, ASP)
sexto 4 6,565 Último mensaje 3 Noviembre 2009, 20:15 pm
por MANULOMM
averiaguar numeros repetidos en un array
Java
ped18 7 7,542 Último mensaje 10 Enero 2012, 17:18 pm
por [Case]
Borrar números repetidos en vector
Programación C/C++
aleaProg 5 5,429 Último mensaje 17 Mayo 2015, 00:46 am
por Peregring-lk
Duda - Como eliminar numeros repetidos de un arreglo en C?
Programación C/C++
palacio29 9 24,017 Último mensaje 30 Agosto 2019, 23:52 pm
por KrishCM
Necesito ayuda para que el programa pueda eliminar números repetidos
Programación C/C++
RedHood 1 9,266 Último mensaje 6 Mayo 2021, 14:05 pm
por MAFUS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines