Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ayuda en un arreglo de c++

Estas en el tema de Ayuda en un arreglo de c++ en el foro de C/C++ en Foros del Web. Hola, me gustaria que me ayudaran, tengo un problema, me pidieron que hiciera 2 arreglos y que llenara los 2 arreglos con numeros aleatorios del ...
  #1 (permalink)  
Antiguo 06/03/2011, 13:14
Avatar de baker1562  
Fecha de Ingreso: marzo-2011
Ubicación: Puntarenas
Mensajes: 261
Antigüedad: 13 años, 1 mes
Puntos: 9
Exclamación Ayuda en un arreglo de c++

Hola, me gustaria que me ayudaran, tengo un problema, me pidieron que hiciera 2 arreglos y que llenara los 2 arreglos con numeros aleatorios del 1 al 15(listo), pero me piden que esos numeros no se repitan en un mismo arreglo, se pueden repetir en el otro pero en un mismo arreglo no ahi, ahi les mando el codigo, de antemano, gracias por su ayuda

Cita:
Código C++:
Ver original
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <cstdlib>
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9.    
  10.     int Posicion[10];
  11.     int Arreglo1[10];
  12.     int Arreglo2[10];
  13.     int Arreglo3[10];
  14.    
  15.     srand(time(0));
  16.     cout<<"Posicion"<<setw(13)<<"Arreglo1"<<setw(13)<<"Arreglo2"<<endl;
  17.    
  18.     for(int i=1;i<11;i++)
  19.     Arreglo1[i]=(1+rand()&#37;16);
  20.  
  21.     for(int i=1;i<11;i++)
  22.     Arreglo2[i]=(1+rand()%16);
  23.  
  24.     for(int j=1;j<11;j++)
  25.    
  26.  
  27. cout<<setw(8)<<j<<setw(13)<<Arreglo1[j]<<setw(13)<<Arreglo2[j]<<endl;
  28.    
  29.     cout<<"Posicion"<<setw(13)<<"Arreglo3"<<endl;
  30.    
  31.     int i=1;
  32.     int k=10;
  33.     while(i<11){
  34.      Arreglo3[i]=Arreglo1[i]+Arreglo2[k];
  35.      i+=1;
  36.      k-=1;
  37.      }
  38.    
  39.      for(int j=1;j<11;j++)
  40.      cout<<setw(8)<<j<<setw(13)<<Arreglo3[j]<<endl;
  41.    
  42.      system("pause");
  43.    
  44.     return 0;
}
Código C++:
Ver original
  1. [HIGHLIGHT="C++"]
[/HIGHLIGHT]

Última edición por baker1562; 06/03/2011 a las 16:21
  #2 (permalink)  
Antiguo 06/03/2011, 19:54
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Ayuda en un arreglo de c++

No lo veo muy difícil.

Cuando estés llenando el 2do arreglo, verifica si el valor aleatorio no existe en el arreglo anterior.

Por ejemplo :

Código C++:
Ver original
  1. // Ya llenaste el 1ero
  2.  
  3. int random;
  4. int m = 0;
  5. bool existe = false;
  6. do {
  7.      // verifico si no existe en el arreglo anterior
  8.      random = 1+rand()%16;
  9.      for(int j = 0; j < 10; j++) {
  10.            if(Arreglo1[j] == random) {
  11.                      existe = true;
  12.            }
  13.      }
  14.      if(!existe) {
  15.            Arreglo2[m] = random;
  16.            m++;
  17.      }
  18.      existe = false;
  19.      
  20. } while(m<10);

Al final me compliqué un poco, pero creo que eso lo haría.

Saludos.

PD : Lamento si te hice la tarea.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #3 (permalink)  
Antiguo 06/03/2011, 20:14
Avatar de baker1562  
Fecha de Ingreso: marzo-2011
Ubicación: Puntarenas
Mensajes: 261
Antigüedad: 13 años, 1 mes
Puntos: 9
Respuesta: Ayuda en un arreglo de c++

grax pero hay algo que no entendi, veamos este bloque de codigo lo pongo despues de estar llenado el segundo arreglo, o entre los 2, perdona mi ignorancia, es que apenas hace unos 2 meses iniciamos esta materia: "Introduccion a la programacion en C++" asi que soy como quien dice un novato todavia :p
  #4 (permalink)  
Antiguo 06/03/2011, 20:28
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Ayuda en un arreglo de c++

El código que escribí llena el 2do arreglo, así que copiar y pegarlo después del 2do no tendría mucho sentido.

Viendo nuevamente el código, me di cuenta que se caería, porque si al comparar el número aleatorio con los elementos del 1er arreglo, el 1er elemento no existe, y el 2do sí, el siguiente bloque if jamás se enteraria. Creo que me faltó agregar un break .
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #5 (permalink)  
Antiguo 06/03/2011, 20:36
Avatar de baker1562  
Fecha de Ingreso: marzo-2011
Ubicación: Puntarenas
Mensajes: 261
Antigüedad: 13 años, 1 mes
Puntos: 9
Respuesta: Ayuda en un arreglo de c++

si, lo puse en lugar del 2 llenado del arreglo y me sigue dando igual, es mas, me da mas numeros repetidos, y ese if(!existe) nunca lo habia visto, eso esta bien????
  #6 (permalink)  
Antiguo 06/03/2011, 20:48
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Ayuda en un arreglo de c++

Te da números repetidos porque en el if del for olvidé romper el bucle en caso de que no exista, y poner existe a false. Aunque no debería, ya que la única forma de que entre al segundo if, es que existe sea false y si encuentra un número repetido, existe es true... tengo tremendo enredo xD.

Hay un problema en el for, y no se me ocurre como solucionarlo.

PD : Bendito sean los contenedores de la STL xD.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #7 (permalink)  
Antiguo 06/03/2011, 21:06
Avatar de baker1562  
Fecha de Ingreso: marzo-2011
Ubicación: Puntarenas
Mensajes: 261
Antigüedad: 13 años, 1 mes
Puntos: 9
Respuesta: Ayuda en un arreglo de c++

me enrede jejeje:P, no se que hacer ya, y he tratado todo el dia saber como se hace :S
  #8 (permalink)  
Antiguo 07/03/2011, 10:04
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Ayuda en un arreglo de c++

Primero que todo, pedirte disculpas, porque leí mal el problema, y lo que estaba haciendo era que los números de un arreglo no se repitieran en el otro... lo cual funciona, pero no es lo que pretendías (siempre me pasa por no leer los problemas :P).

Estuve probando el código anterior para ver como hacer con el problema inicial, y en el código que escribí, cambié Arreglo2 por Arreglo1 dentro del if(!existe) y creo que funcionó. Así que intenta eso y me avisas.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #9 (permalink)  
Antiguo 07/03/2011, 12:34
Avatar de baker1562  
Fecha de Ingreso: marzo-2011
Ubicación: Puntarenas
Mensajes: 261
Antigüedad: 13 años, 1 mes
Puntos: 9
Respuesta: Ayuda en un arreglo de c++

Grax amigo muchas gracias, ahora tengo un problema, ya no se repiten en el arreglo 1, pero como hago para el arreglo2, pego el mismo bloque de codigo y le cambio el nombre de arreglo1 por arreglo 2, ya lo hice y se me repite el arreglo2(Tuve que poner el llenado del arreglo 2, porque si no nunca se va a llenar, ahora el problema es que los numeros no se repitan en ese arreglo) mira te mando una foto
  #10 (permalink)  
Antiguo 07/03/2011, 12:36
Avatar de baker1562  
Fecha de Ingreso: marzo-2011
Ubicación: Puntarenas
Mensajes: 261
Antigüedad: 13 años, 1 mes
Puntos: 9
Respuesta: Ayuda en un arreglo de c++

  #11 (permalink)  
Antiguo 07/03/2011, 14:51
Avatar de baker1562  
Fecha de Ingreso: marzo-2011
Ubicación: Puntarenas
Mensajes: 261
Antigüedad: 13 años, 1 mes
Puntos: 9
Respuesta: Ayuda en un arreglo de c++

Grax ya pude resolver todo, pegue el bloque de codigo despues del llenado aleatorio del arreglo2, pero no me daba, asi que cree una variable llamada m2=1, y si me da bien, grax por tu ayuda!!!!!!!

Etiquetas: arreglos, c++, iomanip, iostream, matrices
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:44.