Cita:
Iniciado por sam90 Sensillamente puedes crear un array que vaya del 1 al 10
int contadores[11] = {0}; // puedes poner hasta 10 pero despues habria que cambiar unos indices.
Despues lo que haces es lo siguiente. Si el primer numero es un 1 sumas uno a la posicion 1, si es un 2 sumas un uno a la posicion dos. Lo haces de esta forma:
Código C:
Ver originalfor(int i=1;i<16;i++)
contadores[arreglo[i]] ++;
Código C:
Ver originalfor(int i=1;i<11;i++)
cout<<setw(8)<<i<<setw(13)<<contadores[i]<<endl;c
Esta tecnica tiene un nombre, pero no me acuerdo. Se aprovecha de que tenes un numero maximo como entrada.
Espero que entiendas.
En efecto si se tiene un máximo funciona; pero si los números son generados aleatoriamente falla; en ese caso debes de tener una matriz bidimensional donde en una fila guardas los numeros y en otra sus frecuencias, cada vez que lees un numero primero lo busquas en la matriz (primera fila), si no lo hallas, lo guardas y en la segunda fila le pones frecuencia 1; pero si lo encuentras simplemente aumentas su frecuencia en 1 (segunda fila).