Java - Problemas con Array

 
Vista:
sin imagen de perfil
Val: 13
Ha aumentado su posición en 7 puestos en Java (en relación al último mes)
Gráfica de Java

Problemas con Array

Publicado por Fulano (6 intervenciones) el 16/06/2019 21:27:33
Hola tengo un problema con el array , me da un error al comienzo del if (linea 25 ) . Con ese código estoy tratando de calcular el numero mas grande de tres numeros ingresados por el usuario,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import java.util.Scanner;
 
public class Ejercicio4practido2do {
    public static void main(String[] args) {
 
    Scanner entrada=new Scanner(System.in);
        int numero1=0,numero2=0,numero3=0;
        int[] numeros = new int [3];
        System.out.println("Ingrese primer numero: ");
        numero1=entrada.nextInt();
        System.out.println("Ingrese segundo numero: ");
        numero2=entrada.nextInt();
        System.out.println("Ingrese tercer numero: ");
        numero3=entrada.nextInt();
 
        numeros[0]= numero1;
        numeros[1]= numero2;
        numeros[2]= numero3;
    maximo(numeros);
 
    }
 
     public static void maximo(int []numeros){
 
      if(numeros[1]>numeros[2] && numeros[1]>numeros[3]){
           System.out.println("Primer numero "+numeros[1]+" es mayor al segundo numero "+numeros[2]+" y al tercer numero "+numeros[3]);
       }else if(numeros[1]<numeros[2] && numeros[2]>numeros[3]){
           System.out.println("Segundo numero "+numeros[2]+" es mayor al primer numero "+numeros[1]+" y al tercer numero "+numeros[3]);
       }else if(numeros[3]>numeros[1] && numeros[3]>numeros[2]){
           System.out.println("tercer numero "+numeros[3]+" es mayor al primer numero "+numeros[1]+" y al segundo numero "+numeros[2]);
       }else if(numeros[3]==numeros[1] && numeros[3]==numeros[1] && numeros[2]==numeros[3])
             System.out.println("Primer numero "+numeros[1]+" , segundo numero "+numeros[2]+" y tercer numero "+numeros[3]+" son iguales");
 
           }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 22
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Problemas con Array

Publicado por xuxin93 (6 intervenciones) el 16/06/2019 21:43:42
El fallo lo tienes en la función maximo() porque estás buscando en posiciones fuera del array.

numeros[3] no existe porque esa es la cuarta posición no la tercera. Recuerda que los arrays comienzan en la posición 0.

Disminuye un digito a todos y lo tendrás resuelto.

Un saludo ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 6
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Problemas con Array

Publicado por Roberth (2 intervenciones) el 19/06/2019 00:47:01
Estas comparando el array como si tuvieras 4 elementos y son solo 3
Array declarado:

1
int[] numeros = new int [3];

Es decir que el array va de 0 a 2 en posición la posición no está:

1
if(numeros[1]>numeros[2] && numeros[1]>numeros[3]){

Cambia por 2 y ya
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Problemas con Array

Publicado por Billy Joel (875 intervenciones) el 19/06/2019 17:00:47
Esta es otra forma de hacerlo...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import java.util.Scanner;
 
public class Maximo {
 
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[] numeros = new int[3];
        //llenamos el array
        for (int i = 0; i < numeros.length; i++) {
            System.out.print("Introduzca un número para la posición " + i + ": ");
            numeros[i] = Integer.parseInt(sc.nextLine());
        }
        maximo(numeros);
        minimo(numeros);
        promedio(numeros);
    }
 
    public static void maximo(int[] array) {
        int index = 0;
        int max = array[index];
        for (int i = 0; i < array.length; i++) {
            if (array[i] > max) {
                max = array[i];
                index = i;
            }
        }
        System.out.println("El valor maximo del array es: " + max + " y se encuentra en la posición: " + index);
    }
 
    public static void minimo(int[] array) {
        int index = 0;
        int min = array[index];
        for (int i = 0; i < array.length; i++) {
            if (array[i] < min) {
                min = array[i];
                index = i;
            }
        }
        System.out.println("El valor minimo del array es: " + min + " y se encuentra en la posición: " + index);
    }
 
    public static void promedio(int[] array) {
        double total = 0.0;
        for (int i = 0; i < array.length; i++) {
            total += array[i];
        }
        System.out.println("El promedio de valores es: " + String.format("%.2f", (total / array.length)));
    }
}

Saludos,
Billy Joel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Problemas con Array

Publicado por Rodrigo (623 intervenciones) el 20/06/2019 16:17:41
Aqui otra version, abusando del hecho que son solo 3 elementos en el arreglo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// ...
    public static void maximo(int[] array) {
        int index = array[0] > array[1] ? 0 : 1;
        if(array[2] > array[index]) { index = 2; }
        System.out.println("Maximo: " + array[index] + ", en la posicion: " + index);
    }
 
    public static void minimo(int[] array) {
        int index = (array[0] < array[1]) ? 0 : 1;
        if(array[2] < array[index]) { index = 2; }
        System.out.println("Minimo: " + array[index] + ", en la posicion: " + index);
    }
 
    public static void promedio(int[] array) {
        double total = array[0] + array[1] + array[2];
        System.out.println("Promedio: " + String.format("%.2f", (total / 3)));
    }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar