No puedo hacer que funcione correctamente

Iniciado por John Locke, 24 Abril 2011, 06:37 AM

0 Miembros y 2 Visitantes están viendo este tema.

John Locke

Buenas , soy muy nuevo en esto de Java , y tambien es el primer lenguaje que aprendo , asi que si hiero la sensibilidad/ego de alguien por mis bajos conocimientos , abstengase de comentar , gracias
Bueno mi duda es la siguiente , estoy haciendo un ejercicio que tengo que hacer un programa que me pida numeros enteros indefinidamente hasta que ingrese 0 , y ahi me dice los 2 numeros mayores
Tengo basicamente dos dudas , la primera es , como hago para asignarle el minimo valor posible a una variable?? tenia entendido que era por ejemplo;
variable=MIN_VALUE , pero el compilador me lo rechaza.
y la segunda es que cuando lo compilo , me da el numero mayor y el segundo me da 0 , aunque haya ingresado varios valores mayores que 0, y la verdad ya no tengo idea de que cambiarle para hacerlo funcionar bien

aca les dejo el codigo



import java.util.*;
public class Prac1Ej2{
public static void main(String args[]){
int mayor1=-1999;
int mayor2=-1999;
int numero=-1999;
System.out.println("Ingrese número ");
Scanner input=new Scanner(System.in);
numero=input.nextInt();
if (numero==0)
System.out.println("Finalizado antes de empezar");
else {
while (numero!=0) {
System.out.println("Ingrese número");
numero=input.nextInt();
if (numero>mayor1) {
mayor2=mayor1;
mayor1=numero;
}
if ((mayor2<numero)&&(numero<mayor1)) ;{
mayor2=numero;
}
}
System.out.println("El mayor numero es "+mayor1);
System.out.println("El segundo numero mayor es "+mayor2);
}

   
                    }
                                    }




Desde ya , muchas gracias

Edu

Estas iniciando las variables con valores -1999, para q? no le pongas ningun valor.

John Locke

porque quise ponerles un valor bajo , en todo caso no responde a ninguna de mis dudas
gracias igual

Slava_TZD

#3
Creo que así ya funcionaria.

Código (java) [Seleccionar]

import java.util.*;
public class Prac1Ej2{
public static void main(String args[]){
   int mayor1=0;
   int mayor2=0;
   int numero;
   System.out.println("Ingresa un numero: ");
   Scanner input=new Scanner(System.in);
   numero=input.nextInt();
   if (numero==0) System.out.println("Finalizado antes de empezar");
   else {
           mayor1=numero;
           while (numero!=0) {
               System.out.println("Ingresa otro numero: ");
               numero=input.nextInt();
               if (numero>mayor1) {
                           mayor2=mayor1;
                           mayor1=numero;
}
}
}
System.out.println("El mayor numero es "+mayor1);
System.out.println("El segundo numero mayor es "+mayor2);
}
}[code]
[/code]



run:
Ingresa un numero:
7
Ingresa otro numero:
9
Ingresa otro numero:
10
Ingresa otro numero:
0
El mayor numero es 10
El segundo numero mayor es 9
BUILD SUCCESSFUL (total time: 12 seconds)


The fact is, even if you were to stop bombing us, imprisoning us, torturing us, vilifying us, and usurping our lands, we would continue to hate you because our primary reason for hating you will not cease to exist until you embrace Islam.

John Locke

Muchisimas gracias Tzhed  , asi si me funciono ,era mucho mas simple de lo que pensaba , tipico de los problemas de logica jajaj

Ahora una ultima duda , como asigno a una variable el minimo valor?? yo pense que era MIN_VALUE , pero no me acepta el compilador , quiero saber asi puedo adaptar el programa para que te siga dando el resultado correcto cuadno se ingresen numeros negativos

1mpuls0

Cita de: John Locke en 24 Abril 2011, 06:37 AM
Buenas , soy muy nuevo en esto de Java , y tambien es el primer lenguaje que aprendo , asi que si hiero la sensibilidad/ego de alguien por mis bajos conocimientos , abstengase de comentar , gracias

A ver a ver, creo que depende. El hecho de que estes aprendiendo Java no signfica que no te puedan hacer ver tus errores.
Se te pasa si cometes errores de sintaxis, porque como dices eres nuevo, pero de logíca ya es un poco difícil.
Cita de: John Locke en 25 Abril 2011, 01:03 AM
Muchisimas gracias Tzhed  , asi si me funciono ,era mucho mas simple de lo que pensaba , tipico de los problemas de logica jajaj

Creo que no debes venir aquí justificandote con que eres nuevo y que sean comprensibles.

Cita de: XXX-ZERO-XXX en 24 Abril 2011, 06:47 AM
Estas iniciando las variables con valores -1999, para q? no le pongas ningun valor.
Cita de: John Locke en 24 Abril 2011, 07:00 AM
porque quise ponerles un valor bajo , en todo caso no responde a ninguna de mis dudas
gracias igual

Muy buena razón para ponerle ese valor, solo porqué se te antojó. ¿Por qué no -100000000?, es un valor mas pequeño.

Deberías pensar mas lo que te dijo XXX-ZERO-XXX

En cuanto al código de Tzhed.


--------------------Configuration: <Default>--------------------
Ingresa un numero:
9
Ingresa otro numero:
7
Ingresa otro numero:
2
Ingresa otro numero:
1
Ingresa otro numero:
4
Ingresa otro numero:
0
El mayor numero es 9
El segundo numero mayor es 0

Process completed.


Creo que deberías considerarlo.

El problema no es muy complicado, si me da tiempo más tarde lo resuelvo y lo subo.

En cuanto a valor mínimo y máximo de la variable int esa así.

Código (java) [Seleccionar]

Integer numero=new Integer("1");
System.out.println(numero.MIN_VALUE);


No sé si a eso te refieres.

Saludos.

abc