Autor
|
Tema: Contar elementos de un vector (Leído 8,176 veces)
|
estudiante_1
Desconectado
Mensajes: 47
|
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
Mensajes: 116
|
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
Mensajes: 222
|
Hola prueba este codigo #include <iostream> using namespace std; int vecesRepetidas(int arreglo[10],int valor){ int cont=0; for(int i=0;i<10;i++){ if(arreglo[i]==valor){ cont++; } } return cont; } int main() { const int tamano=10; int arreglo[tamano]={2,3,3,4,2,42,34,1,2,5}; string expresiones[tamano]={"primer","segundo","tercero","cuarto","quinto","sexto","septimo","octavo","noveno","decimo"}; for(int i=0;i<tamano;i++){ cout<<"El "<<expresiones[i]<<" elemento esta repetido "<<vecesRepetidas(arreglo,arreglo[i])<<" veces"<<endl; } return 0; }
|
|
|
En línea
|
Si C/C++ es el padre de los lenguajes entonces ASM es dios.
|
|
|
Yoel Alejandro
|
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.
#include <iostream> using namespace std; /* escribe en cantidad la cantidad de veces que se repite * cada elemento respectivo en arreglo, i.e., cantidad[i] * representa la cantidad de veces que se repite arreglo[i] * en el vector arreglo[] */ void vecesRepetidas(int arreglo[10], int cantidad[10]){ int i, j, count; cantidad[0] = 1; /* primer elemento solo aparece una vez */ for ( i = 1; i < 10; i++ ) { count = 1; /* busca hacia atras los elementos del vector, y si encuentra repetidos, * incrementa en uno la cantidad de cada uno */ for ( j = 0; j < i; j++ ) if ( arreglo[j] == arreglo[i] ) { if ( count == 1 ) count = cantidad[j] + 1; cantidad[j] = count; } cantidad[i] = count; } } int main() { const int tamano=10; int arreglo[tamano]={2,3,3,4,2,42,34,1,2,5}; int cantidad[10]; string expresiones[tamano]={"primer","segundo","tercero","cuarto","quinto","sexto","septimo","octavo","noveno","decimo"}; vecesRepetidas( arreglo, cantidad); for(int i=0; i<tamano; i++){ cout<<"El elemento: " << arreglo[i] << ", esta repetido: "<<cantidad[i]<<" veces"<<endl; } return 0; }
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.)
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Problema para contar elementos de un vector
Java
|
_SainT_
|
4
|
7,406
|
24 Agosto 2011, 20:02 pm
por _SainT_
|
|
|
Eliminar elementos de un vector
Programación C/C++
|
chihue
|
1
|
2,326
|
3 Enero 2015, 03:13 am
por rir3760
|
|
|
Vector Java Intercambio de dos elementos
Java
|
Lizzy021
|
3
|
4,217
|
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
|
4 Julio 2016, 02:05 am
por engel lex
|
|
|
contar elementos de dos listas en python
Scripting
|
flony
|
4
|
7,762
|
5 Noviembre 2021, 23:35 pm
por flony
|
|