Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Lesterfbt en 1 Julio 2017, 18:29 pm



Título: Urgente su ayuda con incidencia de números
Publicado por: Lesterfbt en 1 Julio 2017, 18:29 pm
Escriba un programa que solicite números enteros entre 1 y 100 de forma continua hasta que el usuario ingrese el valor de 0. El programa debe determinar las incidencias de cada número de 1 a 100 en los números ingresados. Por ejemplo si se ingresa 1, 1, 4, 5, 6, 20, 20, 1, 1. La salida del programa seria:
Incidencia de 1 es 4
Incidencia de 4 es 1
Incidencia de 5 es 1
Incidencia de 6 es 1
Incidencia de 20 es 2


Título: Re: Urgente su ayuda con incidencia de números
Publicado por: engel lex en 1 Julio 2017, 18:57 pm
no se hacen tareas, indica tu problema y lo que llevas hecho


Título: Re: Urgente su ayuda con incidencia de números
Publicado por: Lesterfbt en 1 Julio 2017, 19:12 pm
Hola buenas este es mi codigo:

Código
  1. public class Ejercicio12 {
  2.    static int rep=0;
  3.   public static void main(String[] args)
  4. {
  5.            Scanner linea = new Scanner(System.in);
  6. int [] numd=new int[4];
  7.                System.out.println("Introduce los número:");
  8. for(int i=0;i<numd.length;i++){
  9.                    numd[i] = linea.nextInt();
  10.                    int rep=0;
  11. for(int j=0;j<numd.length-1;j++){
  12. if(i!=j){
  13.                                    if(numd[i]==numd[j]){
  14.  
  15. }
  16. }
  17. }
  18. }
  19.  
  20. int n=numd.length;
  21. for (int k=0;k<=n-1;k++){
  22.                   if(numd[k]==numd[k]){
  23. rep ++;
  24.  
  25. System.out.println("Incidencia de "+ numd[k] +" es "+rep);
  26. }
  27. }
  28. }
  29. }

Esto me imprime en pantalla:

Introduce los número:
2
2
3
3
Incidencia de 2 es 1
Incidencia de 2 es 2
Incidencia de 3 es 3
Incidencia de 3 es 4

Mi problema es que no entiendo como hacer que se sume la repetición de un mismo numero y que solo me imprima el numero repetido una vez tal como aparece en el ejercicio expuesto.


· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro (http://foro.elhacker.net/reglas.htm)
-Engel Lex


Título: Re: Urgente su ayuda con incidencia de números
Publicado por: engel lex en 1 Julio 2017, 19:21 pm
para contar las incidencias, depende del caso, un camino por ejemplo es:

despues de llenar el array, lo organizas y cuentas cada aparicion, simplemente si el numero actual es igual al anterior, se suma uno para ese numero, si es diferente, imprimes cuantos conseguiste del anterior y empiezas a sumar los nuevos



Título: Re: Urgente su ayuda con incidencia de números
Publicado por: migueluc en 1 Julio 2017, 19:25 pm
Para empezar parece que numd tiene un tamaño predefinido de 4, que igual no es lo que necesitas; te recomiendo que uses un arraylist o algún tipo de collection ya que son dinámicas.

Un error que veo es que en la línea 22 estás comparando numd[k] con numd[k], y eso siempre es TRUE porque estás comparando el mismo número.

De todas formas te aconsejo que revises un poco el algoritmo; quizás te vendría bien plantearlo en papel antes de codificar.


Título: Re: Urgente su ayuda con incidencia de números
Publicado por: Lesterfbt en 2 Julio 2017, 01:24 am
Aquí la solución al ejercicio espero le sirva de ayuda alguien mas saludos.

Código
  1. public class Ejercicio2 {
  2.  
  3. public static void main(String args[]) throws IOException {
  4. int frecuencia[];
  5. int i;
  6. int n;
  7. int num = 1;
  8. frecuencia = new int[100];
  9. System.out.println("Digite los Numeros entre 1 y 100");
  10. n = 99;
  11. for (i=1;i<=n;i++) {
  12. frecuencia[i] = 0;
  13. }
  14. for (i=1;i<=n;i++) {
  15. if (num!=0){
  16.                    num = Integer.parseInt(bufEntrada.readLine());
  17.                }
  18. if (num>=1 && num<=99) {
  19. frecuencia[num] = frecuencia[num]+1;
  20. }
  21. }
  22.  
  23. System.out.println("Las incidencias de los numeros son :");
  24. for (i=1;i<=n;i++) {
  25. if (frecuencia[i]==0) {
  26. System.out.print("");
  27. } else {
  28. System.out.println("Incidencia de "+i+" es "+frecuencia[i]);
  29. }
  30. }
  31. }
  32.  
  33.  
  34. }


· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro (http://foro.elhacker.net/reglas.htm)
-Engel Lex