Java - Los dos numeros mas grandes de 10 numeros

 
Vista:
sin imagen de perfil

Los dos numeros mas grandes de 10 numeros

Publicado por Gerardo (1 intervención) el 04/08/2016 09:00:33
Hola que tal disculpen estoy realizando el libro de Deitel e intento realizar un programa con while que me de los dos numeros mas grandes de 10 digitos, este es el programa que hice para mostrar solo un numero pero no comprendo muy bien el algoritmo para dos. muchas gracias !



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
import java.util.Scanner;
public class Deitel421ValorMasGrande
{
 
	public void buscarMayor(){
 
		int contador=0, numero=0, numeroGrande=0;
 
		Scanner entrada = new Scanner(System.in);
 
		while(contador < 10){
			System.out.println("Dame un entero");
			numero = entrada.nextInt();
 
			if(numero > numeroGrande)
				numeroGrande = numero;
 
 
			contador++;  // incrementa contador en 1 
 
		} // fin while
 
	System.out.printf("el entero mas grande es %d:", numeroGrande);
 
	} // termina metodo buscaMayor 
 
	public static void main(String[] args) {
 
		Deitel421ValorMasGrande masGrande = new Deitel421ValorMasGrande();
		masGrande.buscarMayor();
	}
 
}
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

Los dos numeros mas grandes de 10 numeros

Publicado por Rubén (15 intervenciones) el 04/08/2016 09:29:46
Hola Gerardo,

Te comento, que tu algoritmo está bien a primera vista, por lo que si quieres ampliarlo para que te coja los 2 números más grandes, tan solo tienes que generarte una segunda variable numeroGrande1, e ir comparando en if's anidados si es mayor que los numeros ya guardados.

Luego los muestras en orden y listo.

Seria algo como lo siguiente:
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
import java.util.Scanner;
public class Deitel421ValorMasGrande
{
 
public void buscarMayor(){
 
int contador=0, numero=0, numeroGrande=0, numeroGrande1=0;
 
Scanner entrada = new Scanner(System.in);
 
while(contador < 10){
System.out.println("Dame un entero");
numero = entrada.nextInt();
 
if(numeroGrande==0){     //1º pasada, rellenamos la variable numeroGrande si todavía no contiene un número ingresado por teclado
	numeroGrande=numero;
}else if (numeroGrande1==0){  //2º pasada, rellenamos la variable numeroGrande1 si todavía no contiene un número ingresado por teclado
	numeroGrande1=numero;
}
else if(numero > numeroGrande){  //Comparación para asignar el valor si es mayor
	numeroGrande = numero;
}
else if(numero > numeroGrande1){  //Comparación para asignar el valor si es mayor
	numeroGrande1 = numero;
}
else{
	System.out.println("El numero introducido es más pequeño que los anteriores, no se guarda.");  //Caso si es menor o igual que los 2 números anteriores guardados
}
 
contador++; // incrementa contador en 1 
 
} // fin while
 
 
// Comparar con IF , de los 2 números elegidos como "MAS GRANDES" , cuál de los 2 es mayor y mostrarlos en orden.
 
if(numeroGrande > numeroGrande1){
	System.out.println("El numero más grande es :" + numeroGrande + " y el segundo más grande es :" + numeroGrande1);
}
else{
	System.out.println("El numero más grande es :" + numeroGrande1 + " y el segundo más grande es :" + numeroGrande")
}

/*System.out.printf("el entero mas grande es %d:", numeroGrande);	*/


} // termina metodo buscaMayor 

public static void main(String[] args) {

Deitel421ValorMasGrande masGrande = new Deitel421ValorMasGrande();
masGrande.buscarMayor();
}

}


PD: En vez de While usa un for para recorrer --> for (int i =0; i<10; i++) {..........}, en mi opinion los While se usan más para cuando hay comprobaciones como variables booleanas en el código
( Ej:
Boolean var = true;
while (var){
//do something..
. if(pasa algo){
var = false; //condición para salir del while.
}
}
fin del ejemplo.)

Espero haberte sido de ayuda.

Salud2 !! :-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Los dos numeros mas grandes de 10 numeros

Publicado por Jean (1 intervención) el 04/04/2020 06:10:10
1
2
3
4
5
// condición dentro de while
if (nro > mayor1) {
    mayor2 = mayor1;
    mayor1 = nro;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Fer Fuentes

Los dos numeros mas grandes de 10 numeros

Publicado por Fer Fuentes (1 intervención) el 17/09/2020 14:11:39
Hola Jean, veo que tu mensaje es del 2020. Yo estoy empezando a programar y estoy tomando el Dietel como referencia. Gracias por compartir tu solución.
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