Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

encontrar el menor de 6 numeros (en codigo java)

marcopolo198

Bovino maduro
Desde
14 Dic 2008
Mensajes
140
me han encargado una maldita tarea (tengo que encontrar el menor de 6 numeros e imprimir(mostrar) cual es el menor)y despues de muchas horas mi logica no me ha funcionado ya he logrado acabar varis ejercicios pero este en especial no me sale y ya no c donde esta mal .....

el codigo es el siguiente(el que tengo hasta ahora y me sale mal el resultado siempre da cero..

import java.io.*;
public class Numeross{
public static void main (String args[])throws IOException{
float numMenor,num;
int i;

InputStreamReader ent=new InputStreamReader (System.in);
BufferedReader al=new BufferedReader (ent);

numMenor=0;
for(i=1;i<=6;i++){
System.out.println("escriba un numero en la pocicion"+i);
num=Float.parseFloat(al.readLine());

if(num<numMenor)
numMenor=num;
else
numMenor=numMenor;

}
System.out.println("el numero menor de los 6 numero es "+numMenor);
}
}

al ejecutarlo e ir poniendo los numeros al final me marca como resultado cero ...
alguien sabe como se podria resolver????
 
mira amigo, el problema esq numMenor lo estas inicializando en 0, entonces al darle cualquier valor a num positivo, jamas entrara al if... una posible solucion es agregar un if qe verifiqe si es la primera vez qe hace el recorrido, si si es la primera vez quiere decir qe no puede haber un numero menor entonces, numMenor tiene qe ser num, ademas te quite el else pues no sirve de nada, el igualar una variable saludos y suerte!!!


for(i=1;i<=6;i++){
System.out.println("escriba un numero en la posicion"+i);
num=Float.parseFloat(al.readLine());

if (i == 1)
numMenor = num;

if(num<numMenor)
numMenor=num;
}
 
Este problema puede resolverse de muchas maneras, con simples condicionales, utilizando matrices o vectores y ordenando sus elementos, en fin.

Lo que sí puedo decirte con respecto a lo que has puesto de código es que, de qué sirve "lance" excepciones si no las capturas, eso debe estar dentro de un bloque try -> catch.

Además:

Código:
numMenor=numMenor;
Está mal.

Supongamos que ingreso sólo números negativos, entonces al comparar numMenor == (al menor de los números negativos), pero al ingresar cualquier numero mayor a cero, el resultado siempre será cero, debido a lo anterior.

Sin modificar el programa, ingresa sólo números negativos y verás a lo que me refiero.
 
Este problema puede resolverse de muchas maneras, con simples condicionales, utilizando matrices o vectores y ordenando sus elementos, en fin.

Lo que sí puedo decirte con respecto a lo que has puesto de código es que, de qué sirve "lance" excepciones si no las capturas, eso debe estar dentro de un bloque try -> catch.

Además:

Código:
numMenor=numMenor;
Está mal.

Supongamos que ingreso sólo números negativos, entonces al comparar numMenor == (al menor de los números negativos), pero al ingresar cualquier numero mayor a cero, el resultado siempre será cero, debido a lo anterior.

Sin modificar el programa, ingresa sólo números negativos y verás a lo que me refiero.
vectores? matrices?, para que???
seria como hacer una maquina de Goldberg, para una solucion tan sencilla, ademas el amigo parese ser qe apenas esta entrando al mundo de la programacion, meterle conceptos como try y catch solo lo confundirian, ademas en este problema no son necesarios, simplemente es cuestion de quitar el "throws IOException" que en este caso de nada nos sirve

Saludos
 
mira amigo, el problema esq numMenor lo estas inicializando en 0, entonces al darle cualquier valor a num positivo, jamas entrara al if... una posible solucion es agregar un if qe verifiqe si es la primera vez qe hace el recorrido, si si es la primera vez quiere decir qe no puede haber un numero menor entonces, numMenor tiene qe ser num, ademas te quite el else pues no sirve de nada, el igualar una variable saludos y suerte!!!


for(i=1;i<=6;i++){
System.out.println("escriba un numero en la posicion"+i);
num=Float.parseFloat(al.readLine());

if (i == 1)
numMenor = num;

if(num<numMenor)
numMenor=num;
}
muchas gracias ha estado bien como me dijiste ya he visto donde esta el error eso quiere decir que yo nunca comparaba el primer numero por eso siempre me dava cero ,,,,,,con el if(i==1) se soluciono :) muchas gracias,, y si apenas estoy incurcionando en el mundo de la programacion
 
Volver
Arriba