Java - Hallar la posición de los elementos de un Arreglo

 
Vista:
sin imagen de perfil

Hallar la posición de los elementos de un Arreglo

Publicado por Manuel (9 intervenciones) el 08/04/2014 01:04:46
Tengo este código y necesito saber como hago para hallar las posiciones del elemento menor y mayor del arreglo. Hasta el momento solo he podido lograr que me el programa obtenga el numero mayor y el menor.

Clase Main:

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
import java.util.Scanner;
 
public class mayorMenor_Main {
 
    /**
     * Realizar un programa que capture del usuario N números enteros, los almacene en un arreglo y 
       muestre el mayor y la posición en que se encuentra y el menor y la posición en que se 
       encuentra. 
     */
 
    public static void main (String [] args){
 
        int n = 0;
        Scanner input = new Scanner (System.in);
 
 
        System.out.println("Cantidad de números:");
        n = input.nextInt();
 
        int numeros[] = new int[n];
 
        System.out.println("");
        for (int counterN = 0; counterN < numeros.length; counterN++) {
            System.out.print("#"+(counterN+1)+": ");
            numeros[counterN] = input.nextInt();
        }
 
 
 
        mayorMenor validar = new mayorMenor (numeros);
 
        validar.mayorPosicion();
        System.out.println("El # mayor es "+validar.getMayor());
 
        validar.menor();
        System.out.println("El # menor es "+validar.getMenor());
    }
 
}


Clase privada:

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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
public class mayorMenor {
 
    private int n[]; // arreglo numeros
    private int mayor;
    private int menor;
    private int posicionM;
    private int posicionN;
 
 
    public mayorMenor (int x[]){
        this.n=x;
    }
 
    public void mayorPosicion (){
        mayor = n[0];
        for (int i = 0; i < n.length; i++) {
            if (n[i]>mayor){
                mayor=n[i];
            }
        }
    }
 
 
    public void menor (){
        menor = n[0];
        for (int i = 0; i < n.length; i++) {
            if (n[i]<menor){
                menor=n[i];
            }
        }
    }
 
    // Getters and Setters    
    public void setMayor(int mayor) {
        this.mayor = mayor;
    }
 
    public void setMenor(int menor) {
        this.menor = menor;
    }
 
    public int getMayor() {
        return mayor;
    }
 
    public int getMenor() {
        return menor;
    }
 
    public int getPosicionM() {
        return posicionM;
    }
 
    public void setPosicionM(int posicionM) {
        this.posicionM = posicionM;
    }
 
    public int getPosicionN() {
        return posicionN;
    }
 
    public void setPosicionN(int posicionN) {
        this.posicionN = posicionN;
    }
}


He creado dos variables para (posicionM para el # mayor, y posicionN para el numero menor) para saber la posicion, solo que no se donde inicializarlas.

Saben como podría hacerlo???
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

Hallar la posición de los elementos de un Arreglo

Publicado por Rafael (9 intervenciones) el 08/04/2014 12:27:00
Suguiendo tu código...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
...
	public void mayorPosicion (){
		mayor = n[0];
		for (int i = 0; i < n.length; i++) {
			if (n[i]>mayor){
				mayor=n[i];
				posicionM=i;
			}
		}
	}
 
	public void menor (){
		menor = n[0];
		for (int i = 0; i < n.length; i++) {
			if (n[i]<menor){
				menor=n[i];
				posicionN=i;
			}
		}
	}
 
...

Me queda la duda si es realmente lo que quieres ...

Personalmente haria yo estos cambios:

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
...
	private void mayorPosicion (){
		mayor = n[0];
		for (int i = 0; i < n.length; i++) {
			if (n[i]>mayor){
				mayor=n[i];
				posicionM=i;
			}
		}
	}
 
	private void menor (){
		menor = n[0];
		for (int i = 0; i < n.length; i++) {
			if (n[i]<menor){
				menor=n[i];
				posicionN=i;
			}
		}
	}
 
...
 
...
	public int getMayor() {
		mayorPosicion();
		return mayor;
	}
 
	public int getMenor() {
		menor();
		return menor;
	}
 
	public int getPosicionM() {
		mayorPosicion ();
		return posicionM;
	}
 
	public int getPosicionN() {
		menor();
		return posicionN;
	}
...

Pero en gustos y colores....

Saludos cuentanos si es lo que deseabas...
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
sin imagen de perfil

Hallar la posición de los elementos de un Arreglo

Publicado por Manuel (9 intervenciones) el 08/04/2014 20:34:00
Rafael, me sigue imprimiendo el mismo numero de posicion, sabes que mas podria hacer para que funcione?
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 Nicol Mejia Medina

Algoritmo de lunh en java

Publicado por Nicol Mejia Medina (1 intervención) el 15/10/2015 19:47:38
Olaaa!!! me podrían ayudar con este programita plis.. es un proyecto para mi clase estoy en segundo semestre
no se me ocurre como tener la posición de los 16 dígitos y hacerle la respectiva operación para cada uno de ellos
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