Foro de elhacker.net

Programación => Java => Mensaje iniciado por: John Locke en 24 Abril 2011, 06:37 am



Título: No puedo hacer que funcione correctamente
Publicado por: 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
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



Código:
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


Título: Re: No puedo hacer que funcione correctamente
Publicado por: Edu en 24 Abril 2011, 06:47 am
Estas iniciando las variables con valores -1999, para q? no le pongas ningun valor.


Título: Re: No puedo hacer que funcione correctamente
Publicado por: 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


Título: Re: No puedo hacer que funcione correctamente
Publicado por: Slava_TZD en 24 Abril 2011, 10:10 am
Creo que así ya funcionaria.

Código
  1. import java.util.*;
  2. public class Prac1Ej2{
  3. public static void main(String args[]){
  4.    int mayor1=0;
  5.    int mayor2=0;
  6.    int numero;
  7.    System.out.println("Ingresa un numero: ");
  8.    Scanner input=new Scanner(System.in);
  9.    numero=input.nextInt();
  10.    if (numero==0) System.out.println("Finalizado antes de empezar");
  11.    else {
  12.            mayor1=numero;
  13.            while (numero!=0) {
  14.                System.out.println("Ingresa otro numero: ");
  15.                numero=input.nextInt();
  16.                if (numero>mayor1) {
  17.                            mayor2=mayor1;
  18.                            mayor1=numero;
  19. }
  20. }
  21. }
  22. System.out.println("El mayor numero es "+mayor1);
  23. System.out.println("El segundo numero mayor es "+mayor2);
  24. }
  25. }[code]
  26.  
[/code]


Código:
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)


Título: Re: No puedo hacer que funcione correctamente
Publicado por: 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

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


Título: Re: No puedo hacer que funcione correctamente
Publicado por: 1mpuls0 en 25 Abril 2011, 02:32 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.
 
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.

Estas iniciando las variables con valores -1999, para q? no le pongas ningun valor.
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.

Código:
--------------------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
  1. Integer numero=new Integer("1");
  2. System.out.println(numero.MIN_VALUE);
  3.  

No sé si a eso te refieres.

Saludos.