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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Contar elementos de un vector
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Contar elementos de un vector  (Leído 8,176 veces)
estudiante_1

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Contar elementos de un vector
« en: 18 Enero 2016, 01:16 am »

Hola, quisiera saber un código que me dijera para un vector de 10 enteros que:
  El primer elemento esta repetido 2 veces
  El segundo elemento esta repetido 1 veces
.......... etc... Lo he intentado todo y no me sale. Gracias.
Al fin y al cabo es un programa que me diga cuantas veces aparece los elementos de un vector.


En línea

JavierScars

Desconectado Desconectado

Mensajes: 116



Ver Perfil
Re: Contar elementos de un vector
« Respuesta #1 en: 18 Enero 2016, 04:34 am »

Si al menos pones algo que lleves... No hacemos tarea... :¬¬


En línea

Usa lo malo de la vida a tu favor, escala montañas de problemas para deslizarte sobre soluciones, derrumba muros de decepciones para encontrar la libertar de la felicidad,  y quema la leña del fracaso para calentarte con el éxito. Recuerda que sin la oscuridad la luz no brillaría tanto.
crack81

Desconectado Desconectado

Mensajes: 222



Ver Perfil
Re: Contar elementos de un vector
« Respuesta #2 en: 18 Enero 2016, 06:23 am »

Hola prueba este codigo
Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int vecesRepetidas(int arreglo[10],int valor){
  5.    int cont=0;
  6.    for(int i=0;i<10;i++){
  7.        if(arreglo[i]==valor){
  8.            cont++;
  9.        }
  10.    }
  11.    return cont;
  12. }
  13.  
  14.  
  15. int main()
  16. {
  17.    const int tamano=10;
  18.    int arreglo[tamano]={2,3,3,4,2,42,34,1,2,5};
  19.    string expresiones[tamano]={"primer","segundo","tercero","cuarto","quinto","sexto","septimo","octavo","noveno","decimo"};
  20.  
  21.    for(int i=0;i<tamano;i++){
  22.        cout<<"El "<<expresiones[i]<<" elemento esta repetido "<<vecesRepetidas(arreglo,arreglo[i])<<" veces"<<endl;
  23.    }
  24.  
  25.    return 0;
  26. }
  27.  
En línea

Si C/C++ es el padre de los lenguajes entonces ASM es dios.
Yoel Alejandro

Desconectado Desconectado

Mensajes: 254



Ver Perfil WWW
Re: Contar elementos de un vector
« Respuesta #3 en: 18 Enero 2016, 15:58 pm »

Bueno, la solución de crack81 me parece excelente, casi no tendría nada que añadir.

Existen otras formas de poder hacerlo, pero serían más complicadas. Sólo por ocio me puse a pensar en lo siguiente, en aras de optimizar un poco la velocidad el código.

  • Repasamos el primer elemento del vector, y lo marcamos una vez.
  • Para el segundo elemento y posteriores, repasamos sólo para los elementos que le anteceden, por ejemplo para el quinto elemento, buscamos para el primero, segundo, tercero y cuarto. Si alguno es igual, aumentamos en uno la cantidad de apariciones tanto para el elemento que estamos revisando como para todos los que son iguales a él.
  • De esta manera, no se realizan 10x10 = 100 búsquedas, sino 1 + 2 + 3 + ... + 9 = 45 búsquedas. Claro que la diferencia en tiempo no la notarás aquí, pero si fuera por ejemplo un vector con 1000 elementos quizá la diferencia fuera significativa.

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. /* escribe en cantidad la cantidad de veces que se repite
  6.  * cada elemento respectivo en arreglo, i.e., cantidad[i]
  7.  * representa la cantidad de veces que se repite arreglo[i]
  8.  * en el vector arreglo[]
  9.  */
  10. void vecesRepetidas(int arreglo[10], int cantidad[10]){
  11.  
  12.    int i, j, count;
  13.  
  14. cantidad[0] = 1; /* primer elemento solo aparece una vez */
  15. for ( i = 1; i < 10; i++ ) {
  16. count = 1;
  17. /* busca hacia atras los elementos del vector, y si encuentra repetidos,
  18. * incrementa en uno la cantidad de cada uno */
  19. for ( j = 0; j < i; j++ )
  20. if ( arreglo[j] == arreglo[i] ) {
  21. if ( count == 1 ) count = cantidad[j] + 1;
  22. cantidad[j] = count;
  23.     }
  24.    cantidad[i] = count;
  25. }
  26. }
  27.  
  28.  
  29. int main()
  30. {
  31.    const int tamano=10;
  32.    int arreglo[tamano]={2,3,3,4,2,42,34,1,2,5};
  33.    int cantidad[10];
  34.    string expresiones[tamano]={"primer","segundo","tercero","cuarto","quinto","sexto","septimo","octavo","noveno","decimo"};
  35.  
  36.  
  37.    vecesRepetidas( arreglo, cantidad);
  38.  
  39.    for(int i=0; i<tamano; i++){
  40.        cout<<"El elemento: " << arreglo[i] << ", esta repetido: "<<cantidad[i]<<" veces"<<endl;
  41.    }
  42.  
  43.    return 0;
  44. }

Salida en pantalla:

El elemento: 2, esta repetido: 3 veces
El elemento: 3, esta repetido: 2 veces
El elemento: 3, esta repetido: 2 veces
El elemento: 4, esta repetido: 1 veces
El elemento: 2, esta repetido: 3 veces
El elemento: 42, esta repetido: 1 veces
El elemento: 34, esta repetido: 1 veces
El elemento: 1, esta repetido: 1 veces
El elemento: 2, esta repetido: 3 veces
El elemento: 5, esta repetido: 1 veces


Saludos, Yoel.
P.D.- Sí acepto M.P.
En línea

Saludos, Yoel.
P.D..-   Para mayores dudas, puedes enviarme un mensaje personal (M.P.)
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema para contar elementos de un vector
Java
_SainT_ 4 7,406 Último mensaje 24 Agosto 2011, 20:02 pm
por _SainT_
Eliminar elementos de un vector
Programación C/C++
chihue 1 2,326 Último mensaje 3 Enero 2015, 03:13 am
por rir3760
Vector Java Intercambio de dos elementos
Java
Lizzy021 3 4,217 Último mensaje 6 Septiembre 2015, 16:57 pm
por Eleкtro
Necesito Un Algoritmo para intercambiar de Posición dos elementos de un vector
Dudas Generales
itzg3 3 5,816 Último mensaje 4 Julio 2016, 02:05 am
por engel lex
contar elementos de dos listas en python
Scripting
flony 4 7,762 Último mensaje 5 Noviembre 2021, 23:35 pm
por flony
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines