Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/10/2011, 20:22
Gaudy
 
Fecha de Ingreso: junio-2009
Mensajes: 84
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: Controlar las veces que se imprime un valor en un ciclo

Bueno... creo q de porsi está un poco complicada la forma en q la implementaste, podrías haberhecho mejor q en cada posicion del vector apariciones fuera una forma de representar los valores del arreglo, de tal forma q al pasar por los bucles llegue a obtener:

apariciones [0, 4, 0, 3, 1]
posiciones- 0, 1, 2, 3, 4


A mi se me ocurrio esto:

Usamos el mismo arreglo q nos mensionas, con otros 2 enteros, un Valor Maximo q nos servirá de condicional para detener el bucle for al contar y un Valor cantidad.

El el 1º bucle (for) nos dira quien es el máximo.

Luego tendremos otros 2 bucles for metidos, los cuales, recorrerán todo el arreglo 4 veces (puesto q 4 es el valor maximo).

El 1º recorrido se contarán toods los 1 y al salir del "for" lo imprime.
Luego el contador vuelve a 0 y se vuelve a contar todos los 2, sale del "for" y se imprime, y así sucesivamente.
Código Java:
Ver original
  1. int [] arreglo = {1, 1, 1, 3, 3, 4, 3, 1};
  2. int MaxValue = 0;
  3.  
  4. for(int i = 0; i<arreglo.length; i++) if(MaxValue<arreglo[i]) MaxValue = arreglo[i];
  5.  
  6. for(int a = 1; a <= MaxValue; a++){
  7.     int cantidad = 0;
  8.     for(int i = 0; i<arreglo.length; i++) if(a == arreglo[i]) cantidad++;
  9.     System.out.println("El número "+a+" se repite "+cantidad+" veces");
  10. }

Última edición por Gaudy; 15/10/2011 a las 20:43