[ Foro de Java ]

ayuda en mi codigo

07-May-2021 18:03
Invitado (alms)
1 Respuestas

me imprime 0 en lugar del mayor ?¿que hago?soy prinipiante
package NumMayor;

public class NumMayor {
 
   int resultado;
   
   public void numMayor(int a, int b , int c, int d ,int e) {
   
         if (a>b){
   
          if (a>c){
         
              if (a>d){
                 
                  if (a>e)
                  {
                 this. resultado=a;
                  //return resultado;
                 
                  }      
              }
          }
         
     else{
            if (b>a){
               if(b>c){
                    if(b>d){
                        if(b>e){
                           
                         this.resultado=b;
                        //return resultado;
                            }
                        }
                   }
               }
               

               else{
            if  (c>a){
                   if (c>b){
                       if (c>d){
                           if (c>e){
                           
                             resultado=c;
                               //return resultado;
                           }
                       }
                   }
            }
           
            else{
           
                if (d>a){
                    if(d>b){
                        if (d>c){
                            if (d>e){
                           
                            this. resultado =d;
                                //return resultado;
                            }
                        }
                    }
                }
               
               
                else{
                 
                    if(e>a){
                        if (e>b){
                            if (e>c){
                                if (e>d){
                               
                                this.resultado=e;
                                 //return resultado;
                                }
                             
                            }
                        }
                    }
                }
            }

         }

      }

   }//fin-if  

   }
   
   
   
   public void mostrarResultados(){
       
   System.out.println("el numero mayor es:" + resultado);

   }
   
   



public static void main (String [] args){
        Scanner sc= new Scanner(System.in);
       
      System.out.println("Introduce el primer numero: ");
       int num1= sc.nextInt();
       
        System.out.println("Introduce el segundo numero: ");
       int  num2= sc.nextInt();
       
        System.out.println("Introduce el tercer numero: ");
       int num3= sc.nextInt();
       
        System.out.println("Introduce el cuarto numero: ");
       int  num4= sc.nextInt();
       
        System.out.println("Introduce el quinto numero: ");
       int num5= sc.nextInt();
       
   NumMayor nm = new NumMayor();
  nm.numMayor(num5, num5, num5, num5, num5);
  nm.mostrarResultados();
}

}


13-May-2021 15:48
Franco Garcia

Te tiro una idea, que es mas simple y evita que se armen ese chorizo de comparaciones, que te podes enredar muy facil...

Guarda el mayor en una variable. Por ejemplo

 public void numMayor(int a, int b , int c, int d ,int e) {
int mayor= a; (siempre empezamos comparando con el a)

if(mayor<b) // si valor guardado en variable "mayor" es MENOR a b  --> es lo mismo que decir si a<b
                        //porque le asignamos ese valor previamente.
{
    mayor = b; // el mayor es b
}
if(mayor <c) // si valor guardado en variable "mayor" es MENOR a c
{
    mayor = c; // el mayor es c
}
if(mayor <d) // si valor guardado en variable "mayor" es MENOR a d
{
    mayor = d; // el mayor es d
}
if(mayor <e) // si valor guardado en variable "mayor" es MENOR a e
{
    mayor = e; // el mayor es e
}
// en caso de que no se cumpla la condición en alguno de los if, SIEMPRE va a guardar el valor anterior.
// Osea, si el valor de "a" es de entrada el numero mayor, NUNCA se va a sobrescribir ese valor porque
// ningun if cumple el requisito, por ende te va  devolver el valor de "a". Si en algun punto alguno es
// mayor, se va a sobreescribir y ese va a ser el nuevo valor a comparar para los proximos if...
return mayor;
}

// Espero haber sido de ayuda.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)