te voy. a pasasr dos codigos dime porque el primero esta mal y el segundo bien // Método que debería devolver la posición del mayor valor en un array // Entrada -> un array: {3, 10, 6, 8} // Debería devolver 1 (posición de 10) public static int buscarPosicionMayor(int[] array){ int mayor=0; for (int i = 2; i < array.length; i++) { if(array[i]>mayor){ mayor=array[i]; } } return mayor; } // Método que debería devolver la posición del mayor valor en un array // Entrada -> un array: {3, 10, 6, 8} // Debería devolver 1 (posición de 10) public static int buscarPosicionMayor(int[] array){ int mayor= array[0]; int posicionMayor= 0; for (int i = 1; i < array.length; i++) { if(array[i] > mayor){ mayor = array[i]; posicionMayor= i; } } return posicionMayor; }
El primer código está mal porque no está encontrando la posición del mayor valor en el array. Está encontrando el mayor valor, pero no está guardando la posición en la que se encuentra. El problema está en la línea `int mayor=0;`. Estás inicializando `mayor` con 0, que es el primer elemento del array. Luego, en el bucle, estás comparando cada elemento con `mayor`, pero si el elemento actual es mayor que `mayor`, estás actualizando `mayor` con el valor del elemento actual, pero no estás actualizando la posición de `mayor`. En el segundo código, estás inicializando `mayor` con el primer elemento del array y `posicionMayor` con 0. Luego, en el bucle, estás actualizando `mayor` y `posicionMayor` cuando encuentras un elemento mayor que `mayor`. Esto es correcto, porque estás guardando la posición del mayor valor en `posicionMayor`. Aquí hay una explicación más detallada: - En el primer código, `mayor` se inicializa con 0, que es el primer elemento del array. Luego, en el bucle, se compara cada elemento con `mayor`. Si el elemento actual es mayor que `mayor`, se actualiza `mayor` con el valor del elemento actual. Sin embargo, no se actualiza la posición de `mayor`, porque `mayor` ya se ha actualizado con el valor del elemento actual. Por lo tanto, al final del bucle, `mayor` es el mayor valor del array, pero no se conoce su posición. - En el segundo código, `mayor` se inicializa con el primer elemento del array y `posicionMayor` se inicializa con 0. Luego, en el bucle, se compara cada elemento con `mayor`. Si el elemento actual es mayor que `mayor`, se actualizan `mayor` y `posicionMayor` con el valor y la posición del elemento actual, respectivamente. Esto es correcto, porque se está guardando la posición del mayor valor en `posicionMayor`. En resumen, el primer código está mal porque no está encontrando la posición del mayor valor en el array, mientras que el segundo código está bien porque está encontrando la posición del mayor valor en el array.