Foro de elhacker.net

Programación => Java => Mensaje iniciado por: afrocardo en 18 Febrero 2017, 14:56 pm



Título: Ayuda!!! Cálculo el valor entero(atributo) mas alto en un array
Publicado por: afrocardo en 18 Febrero 2017, 14:56 pm
Code below:

Código
  1. package es.unex.cum.edi.sesion3;
  2.  
  3. import java.util.Scanner;
  4.  
  5. import es.unex.cum.edi.sesion3.Festival;
  6.  
  7. public class Main {
  8. public static void main(String[] args) {
  9.  
  10. // Variables
  11. int suma = 0;
  12. float media = 0.0F;
  13. int numMasAlto = 0;
  14. /**
  15. * Para el tamanio del array
  16. */
  17. int tamanio = 0;
  18. /**
  19. * Para el nombre,direccion y edicion
  20. */
  21.  
  22. // Objeto Scanner
  23. Scanner sc = new Scanner(System.in);
  24.  
  25. /**
  26. * Rellenar el array.Se asigna el tamaño y se van introduciendo los
  27. * datos en el array
  28. */
  29.  
  30. System.out.println("Introduzca el tamanio del array");
  31. tamanio = sc.nextInt();
  32.  
  33. // Declaracion array
  34. Festival[] array;
  35. array = new Festival[tamanio];
  36.  
  37. /**
  38. * Inicializacion del array
  39. */
  40. for (int i = 0; i < array.length; i++) {
  41. array[i] = new Festival();
  42. }
  43.  
  44. /**
  45. * Rellenar el array.Se ingresan los datos(Setters)
  46. */
  47.  
  48. for (int i = 0; i < array.length; i++) {
  49. System.out.println("Introduzca el nombre del festival: ");
  50. String nom = sc.next();
  51. array[i].setNombre(nom);
  52.  
  53. System.out.println("Introduzca la ciudad donde se celebra el festival: ");
  54. String ciu = sc.next();
  55. array[i].setCiudad(ciu);
  56.  
  57. System.out.println("Introduzca el año en que desea ir al festival: ");
  58. int año = sc.nextInt();
  59. array[i].setEdicion(año);
  60.  
  61. }
  62. /**
  63. * Listar todos los objetos del vector(mostrarlos)
  64. */
  65. for (int i = 0; i < array.length; i++) {
  66. // If para verificar el array se haya rellenado y no está vacio
  67. if (array[i] != null)
  68. System.out.println(array[i].toString());
  69.  
  70. }
  71.  
  72. /**
  73. * Media del atributo entero.Media del numero de ediciones
  74. */
  75. for (int i = 0; i < array.length; i++) {
  76. // Calculo la suma antes para calcular luego la media mas facilmente
  77. suma = suma + array[i].getEdicion();
  78. }
  79. media = (float) suma / array.length;
  80.  
  81. [color=red][font=Verdana] /**
  82. * El valor entero mas alto del array
  83. */
  84. for (int i = 0; i < array.length; i++) {
  85. if (array[i].getEdicion()>array[0].getEdicion()) {
  86. numMasAlto = array[i].getEdicion();
  87.  
  88. }[/font][/color]
  89.  
  90. }
  91. System.out.println("Media: " + media + " " + "Alto: " + numMasAlto);
  92.  
  93. }
  94. }


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


Título: Re: Ayuda!!! Cálculo el valor entero(atributo) mas alto en un array
Publicado por: 0xFer en 19 Febrero 2017, 00:21 am
Usa la variable i, es la variable te iteración en el bucle for:

Código
  1. int numMasAlto = array[0].getEdicion(); /*supongamos que el primer elemento es el más Alto*/
  2.  
  3. for (int i = 1; i < array.length; i++) {
  4.         if (array[i].getEdicion()> numMasAlto) {
  5.            numMasAlto = array[i].getEdicion();
  6.  
  7.         }


Título: Re: Ayuda!!! Cálculo el valor entero(atributo) mas alto en un array
Publicado por: afrocardo en 27 Febrero 2017, 15:18 pm
Gracias.Ya he solucionado el problema.