Autor
|
Tema: ayuda con la eliminacion de elementos repetidos en un vector en c++ (Leído 4,576 veces)
|
abejaatareada
Desconectado
Mensajes: 1
|
hola.. por favor quisiera saber como genero numeros manualmente pero llegado el caso que repita el programa me indique que lo he hecho y pues que lo elimine.. es decir que me genere en otro vector los numeros sin repeticiones. llevo esto (se que no es mucho): int main() { int v1[15],i,n,N, expo=2,v2; cout <<"\n Tamano del vector: "; cin>>N; for (i=0;i<N;i++) { cin>> v1(i); }
Mod: Los códigos deben ir en etiquetas GeSHi, no debes escribir en mayúsculas
|
|
« Última modificación: 11 Mayo 2016, 06:50 am por engel lex »
|
En línea
|
|
|
|
class_OpenGL
Desconectado
Mensajes: 437
Si usas Direct3D, no eres mi amigo :P
|
Este código no es el mejor que he visto. No sé si sonará demasiado duro, pero este código es un poquito chapucero. Primero, aunque le pides al usuario que indique el tamaño del vector, si este excede un tamaño de 15, el programa probablemente te lance un error. Segundo, el código es imposible que compile pues tiene dos errores (que yo haya percibido). El más grave que he visto es que intentas acceder a los elementos del arreglo 'v1' con paréntesis, y se hace con corchetes (el otro es que no incluyes las librerías pertinentes).
No sé si lo que voy a decir ahora es cierto, pero no parece que lo hayas intentado. Aun así, te aconsejo que declares un segundo vector (por ejemplo, v2) del mismo tamaño que el 'v1' y que le añadas los elementos de v1. A medida que vayas añadiendo elementos al v2, comprueba si el elemento que vas a añadir está en v2; si lo está, entonces no lo insertes.
|
|
« Última modificación: 11 Mayo 2016, 07:14 am por class_OpenGL »
|
En línea
|
| Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL |
|
|
|
|
kgarcia994
Desconectado
Mensajes: 17
|
Hola buenas, Primero de todo, queria decirte que, como bien dice nuestro compañero class_OpenGL, el codigo en si tiene un error bastante grave a la hora de declarar el vector. Ya que le dices que es de tamaño 15. Pero si el usuario introduce 20, el bucle for ara 20 vueltas, es decir v1[16]por ejemplo, te petaria el programa porque la posicion 16 no existe Seguidamente. no se si he entendido bien tu pregunta. He entendido que quieres crear un vector de enteros, en el qual vas introduciendo numeros sin que se repitan, es decir que si quieres introducir un 2 y ya esta introducido, cree un vector con los numeros sin repetir. Si es lo que he entendido, yo creo que es mas facil hacer una busqueda de los numeros ya introducidos y mirar si el que quieres introducir esta o no. En caso de que este no se lo dejas introducir y le vuelves a pedir otro numero. Te dejo aqui el codigo que he echo suponiendo que he entendido bien tu pregunta. #include <iostream>
using namespace std;
int main() { int Numero; //Declaro variable Numero que es el tamaño del vector int i=0,j, NumeroIntroducir; //Declaro "i" y "j" que los usare de contadores //Declaro un booleano para hacer una busqueda en el vector de enteros bool bBuscaNumero = false; //Pedimos el tamaño del vector do{ cout << "Tamaño del vector: "; cin >> Numero; //Controlamos que el usuario no ponga 0 if(Numero<=0) cout<<"Tamaño de vector incorrecto" <<endl; }while(Numero<=0); //Lo declaramos con el tamaño pedido anteriormente int v1[Numero]; //Hacemos un do-while para que vaya haciendo todo el vector do{ //Pedimos que introduzca numero cout << "Introduce numero: "; cin >> NumeroIntroducir; /*Le decimos que si la i es diferente a 0 entre Esto es para que la primera vuelta assigne numero si o si ya que no estan repetidos*/ if (i!=0){ //Ponemos j a 0 y el booleano en falso j=0; bBuscaNumero = false; /*Mientras la j sea mas pequeña que la i (posicion hasta la que tendra numeros rellenados) Y el booleano sea falso*/ while(j<i && !bBuscaNumero){ /*si el numero del vector que esta en la posicion j es igual al numero pedido al usuario*/ if(v1[j]==NumeroIntroducir) bBuscaNumero = true; //pondremos el booleano en true else j++;//sino pasaremos a la siguiente posicion } if(!bBuscaNumero){ //Si el booleano es falso (es decir que no lo ha encontrado) v1[i]=NumeroIntroducir; //Lo introducimos i++; //I sumamos una posicion mas }else{ cout <<"Numero ya introducido"<<endl;//Informamos de que lo ha encontrado } }else{ //Aqui añadimos el primer numero a la primera posicion v1[0]=NumeroIntroducir; i++; //y sumamos una posicion mas } }while(i<Numero); //Mientras la i sea mas pequeña que el Numero (tamaño de vector) ara todo lo anterior return 0; }
|
|
« Última modificación: 11 Mayo 2016, 12:59 pm por kgarcia994 »
|
En línea
|
|
|
|
Orubatosu
|
Lo he dicho muchas veces, pero soy un pesado.
En C++, llama a estas construcciones "arreglos" o "array" o "matriz" si lo prefieres, pero no vector.
Vector en C++ es un contenedor de la STL, que se usa con la librería del mismo nombre.
De hecho un "vector" en C++ no tiene un tamaño predefinido, es una de sus grandes ventajas, que puedes añadir o quitar elementos del mismo tranquilamente
|
|
|
En línea
|
"When People called me freak, i close my eyes and laughed, because they are blinded to happiness" Hideto Matsumoto 1964-1998
|
|
|
kgarcia994
Desconectado
Mensajes: 17
|
Toda la razon del mundo, es un array de enteros lo que el queria crear, lapsus mio jajaja , al leer en su mensaje vector me ha confundido al explicarse-lo, pero asi supongo que lo entendera. Y como bien dices, los vectores son dinamicos, por lo cual puedes ir añadiendo numeros y quitando a tu voluntad, sin limite de espacio. Como vuelvo a decir, ha sido fallo mio al leerle vector
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Eliminar elementos repetidos de un vector
Programación General
|
GaLaN GaLaNaSo 3000
|
2
|
63,006
|
16 Noviembre 2011, 06:44 am
por osolmm
|
|
|
Llenar un vector con 10 elementos no repetidos en Ruby
Scripting
|
hack289z
|
0
|
4,066
|
25 Octubre 2011, 02:24 am
por hack289z
|
|
|
arreglos con elementos repetidos--
Programación C/C++
|
bobitttyy
|
1
|
1,830
|
6 Abril 2015, 14:38 pm
por engel lex
|
|
|
Array elementos repetidos
Programación C/C++
|
LGG
|
1
|
2,647
|
5 Mayo 2015, 17:32 pm
por eferion
|
|
|
Ayuda!! agregar elementos no repetidos de un arreglo a otro
Java
|
juankefdg
|
6
|
7,576
|
19 Abril 2017, 01:07 am
por Serapis
|
|