Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/03/2014, 21:09
Jh3odst
 
Fecha de Ingreso: marzo-2014
Mensajes: 1
Antigüedad: 10 años
Puntos: 0
¿Hallar números mayores en un array?

Hola amigos, buenas noches.
Bueno, tengo de tarea hacer un programa donde se pida "n" calificaciones y calcular el promedio y además hallar las calificaciones de menor y mayor o igual(>=) valor al del promedio.
He aquí mi código:

Código Java:
Ver original
  1. Scanner lee=new Scanner(System.in);
  2.        
  3.         float suma=0,Prom=0, menor, mayor=0;
  4.         int i=0, j=0, a=0;
  5.        
  6.         System.out.println("¿Cuantas calificaciones serán insertadas?");
  7.         int Numcalif=lee.nextInt();
  8.         float array1[]=new float[Numcalif];
  9.         float array2[]=new float[Numcalif];
  10.         float array3[]=new float[Numcalif];
  11.        
  12.         System.out.println("Ingresa calificaciones");
  13.         for(i=0;i<Numcalif;i++)
  14.         {
  15.             array1[i]=lee.nextFloat();
  16.             suma+=array1[i];
  17.             Prom=suma/Numcalif;
  18.             if(array1[i]>Prom)
  19.             {
  20.                 array2[j]=array1[i];
  21.                 j++;
  22.             }
  23.             else
  24.                 if(array1[i]<Prom)
  25.                 {
  26.                     array3[a]=array1[i];
  27.                     a++;
  28.                 }
  29.         }
  30.         System.out.println("El promedio es: "+Prom);
  31.        
  32.         System.out.println("Las calificaciones Mayores al promedio son:");
  33.         for(i=0;i<array2.length;i++)
  34.                 System.out.println(array2[i]);
  35.         System.out.println("Las calificaciones Menores al promedio son:");
  36.          for(i=0;i<array3.length;i++)
  37.                 System.out.println(array3[i]);

Lo que hago es declarar 3 arrays, 1° para guardar, 2°para guardar variables maximas y el 3° para variables minimas, despues inserto las calificaciones en el array1, hago la suma y promedio de las calificaciones, ahora lo que hago es comparar los elementos del array1 con el promedio resultante y si son maximos se guardan en el 2°array y en el 3° se guardan las minimas.
Bueno el problema que tengo es al comparar ya que al correr el programa solo compara números en forma descendente de grandes a pequeños elementos y realmente ordena los números maximos y minimos pero si agrego más de 4 elementos en el array siempre hay un número minimo que se queda en el array máximo y si lo hago insertando números en forma "aleatoria" todos los elementos quedan en máximo aún siendo minimos.

Ejemplo más de 4 elementos:
Código Java:
Ver original
  1. run:
  2. ¿Cuantas calificaciones serán insertadas?
  3. 5
  4. Ingresa calificaciones
  5. 100
  6. 90
  7. 80
  8. 70
  9. 60
  10. El promedio es: 80.0
  11. Las calificaciones Mayores al promedio son:
  12. 100.0
  13. 90.0
  14. 80.0
  15. 70.0
  16. 0.0
  17. Las calificaciones Menores al promedio son:
  18. 60.0
  19. 0.0
  20. 0.0
  21. 0.0
  22. 0.0
  23. BUILD SUCCESSFUL (total time: 6 seconds)


ejemplo insertando números aleatorios:
Código Java:
Ver original
  1. ¿Cuantas calificaciones serán insertadas?
  2. 5
  3. Ingresa calificaciones
  4. 40
  5. 70
  6. 50
  7. 60
  8. 90
  9. El promedio es: 62.0
  10. Las calificaciones Mayores al promedio son:
  11. 40.0
  12. 70.0
  13. 50.0
  14. 60.0
  15. 90.0
  16. Las calificaciones Menores al promedio son:
  17. 0.0
  18. 0.0
  19. 0.0
  20. 0.0
  21. 0.0
  22. BUILD SUCCESSFUL (total time: 8 seconds)

Por favor ayudenme, se los agradeceré mucho.