Exercico

Olá, pessoal!

Estou aprendendo java e tenho muitas dúvidas, não consigo resolver o exercicio abaixo, por favor, preciso da ajuda de vocês

1.Descubra e apresente o maior entre três números fornecidos pelo usuário. Caso eles sejam iguais, avise ao usuário.

  public class Exercicio27 {


	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int num1 = 3;
		int num2 = 5;
		int num3 = 2;

		if (num1 > num2 && num1 > num3) {
			System.out.println("NUM1 É O MAIOR");
		} else if (num2 > num1 && num2 > num3) {
			System.out.println("NUM2 É O MAIOR");
		} else if (num3 > num1 && num3 > num2) {
			System.out.println("NUM3 É O MAIOR");
		} else if (num2 == num1 && num2 == num3) {
			System.out.println("VALORES IGUAIS");
		
		}
	}
}

Opa,

Uma dica primeiro: Coloque seu codigo entre a tag code para facilitar a leitura do seu código.
Quanto eu seu problema é um probleminha bem clássico de lógica. Qual a dificuldade você está tendo?
Em ler os dados do usuário? Pois do jeito que você colocou os numeros estão fixos.

Abs,

??? Mas o teu Exercício está funcionando!!!

Qual é sua duvida?

Então, estou utilizando a mesmo lógica que você usou, mas só inverti a parte de verificar se os valores são iguais.
Seu exercício está correto!

import javax.swing.*; public class Ajuda { public static void main(String[] args) { int n1,n2,n3,ma; n1 = Integer.parseInt(JOptionPane.showInputDialog("Informe o 1º número")); n2 = Integer.parseInt(JOptionPane.showInputDialog("Informe o 2º número")); n3 = Integer.parseInt(JOptionPane.showInputDialog("Informe o 3º número")); if(n1==n2 && n2==n3) { System.out.println("Os valores são iguais"); } if(n1>n2 && n1>n3) { System.out.println("O maior valor é "+n1); } else if(n2>n1 && n2>n3) { System.out.println("O maior valor é "+n2); } else if(n3>n1 && n3>n2) { System.out.println("O maior valor é "+n3); } } }

Neste caso se:

n1 = 2
n2 = 1
n3 = 2

Não irá exibir nada.
Certo ?

O tópico não possui fundamento algum, já que sua autora não esclareceu qual é a sua dúvida com relação ao exercício. Deixe claro também qual é a mensagem de erro emitida pelo compilador, caso haja.

Pessoal muito obrigado, a dúvida era porque não estava imprimindo… mas agora esta ok…

Obrigado e dá próxima vez vou tentar ser mais clara…

:smiley:

[quote=danielmlds]Então, estou utilizando a mesmo lógica que você usou, mas só inverti a parte de verificar se os valores são iguais.
Seu exercício está correto!

import javax.swing.*; public class Ajuda { public static void main(String[] args) { int n1,n2,n3,ma; n1 = Integer.parseInt(JOptionPane.showInputDialog("Informe o 1º número")); n2 = Integer.parseInt(JOptionPane.showInputDialog("Informe o 2º número")); n3 = Integer.parseInt(JOptionPane.showInputDialog("Informe o 3º número")); if(n1==n2 && n2==n3) { System.out.println("Os valores são iguais"); } if(n1>n2 && n1>n3) { System.out.println("O maior valor é "+n1); } else if(n2>n1 && n2>n3) { System.out.println("O maior valor é "+n2); } else if(n3>n1 && n3>n2) { System.out.println("O maior valor é "+n3); } } }[/quote]

Boa idéia, vou utilizar o JOptionPane.

Deu erro na página na hora de enviar o código e enviou dobrado, apaguei essa mensagem e o código está no próximo post!

Pessoal,

Mesmo sendo um exercício simples, acho que dá para melhorar. Coloquei o retorno do código de forma mais visível para quem está lendo.

Acho que se for um exercício de colégio técnico, você pula de um 8,5 para 10,0 risos…

Abraços,

[code]import javax.swing.*;

public class TesteNew {

public static void main(String[] args)   
{   
    int n1,n2,n3,ma;   
    n1 = Integer.parseInt(JOptionPane.showInputDialog("Informe o 1º número"));   
    n2 = Integer.parseInt(JOptionPane.showInputDialog("Informe o 2º número"));   
    n3 = Integer.parseInt(JOptionPane.showInputDialog("Informe o 3º número"));   
    if(n1==n2 && n2==n3)   
    {   
    	JOptionPane.showMessageDialog(null, "Os três valores são iguais");    
    }   
    if(n1>n2 && n1>n3)   
    {   
    	JOptionPane.showMessageDialog(null, "O maior valor é "+n1);    
    }   
    else if(n2>n1 && n2>n3)   
    {   
    	JOptionPane.showMessageDialog(null, "O maior valor é "+n2);   
    }   
    else if(n3>n1 && n3>n2)   
    {   
    	JOptionPane.showMessageDialog(null, "O maior valor é "+n3);   
    }   
}   

}[/code]

Bom,

Para ficar mais claro, abaixo estão as telas de como serão exibidas as mensagens de retorno:

Não querendo ser chato mas …

Faça o seguinte teste:

Para o primeiro número informe 2
Para o segundo número informe 1
Para o terceiro número informe 2

Vai exibir o que ???

O correto seria exibir: “O maior valor é 2”

Será que agora dá certo? Nota 10,0 agora?

Risos…

[code]import javax.swing.*;

public class TesteNew {

public static void main(String[] args)   
{   
    int n1,n2,n3,ma;   
    n1 = Integer.parseInt(JOptionPane.showInputDialog("Informe o 1º número"));   
    n2 = Integer.parseInt(JOptionPane.showInputDialog("Informe o 2º número"));   
    n3 = Integer.parseInt(JOptionPane.showInputDialog("Informe o 3º número"));   
    if(n1==n2 && n2==n3)   
    {   
    	JOptionPane.showMessageDialog(null, "Os três valores são iguais");    
    }   
    if(n1>n2 && n1>n3)   
    {   
    	JOptionPane.showMessageDialog(null, "O maior valor é "+n1);    
    }   
    else if(n2>n1 && n2>n3)   
    {   
    	JOptionPane.showMessageDialog(null, "O maior valor é "+n2);   
    }   
    else if(n3>n1 && n3>n2)   
    {   
    	JOptionPane.showMessageDialog(null, "O maior valor é "+n3);   
    }
    else if(n1==n2 && !(n2==n3))   
    {   
    	if (n1 > n3) {
    		JOptionPane.showMessageDialog(null, "O maior valor é "+n1);
    	} else {
    		JOptionPane.showMessageDialog(null, "O maior valor é "+n3);
    	}
    }      
    else if(n1==n3 && !(n1==n2)) 
    {   
    	if (n1 > n2) {
    		JOptionPane.showMessageDialog(null, "O maior valor é "+n1);
    	} else {
    		JOptionPane.showMessageDialog(null, "O maior valor é "+n2);
    	} 
    }          
    else if(n2==n3 && !(n1==n2))   
    {   
    	if (n2 > n1) {
    		JOptionPane.showMessageDialog(null, "O maior valor é "+n2);
    	} else {
    		JOptionPane.showMessageDialog(null, "O maior valor é "+n1);
    	}
    }          
}   

}[/code]

Vou deixar registrado também os cenários de testes que foram utilizados no script acima.

Se encontrarem mais algum BUG, posso pensar em uma nova lógica:

N1 = 1 N2 = 2 N3 = 1 N1 = 1 N2 = 1 N3 = 2 N1 = 2 N2 = 1 N3 = 1 N1 = 1 N2 = 2 N3 = 3 N1 = 2 N2 = 3 N3 = 1 N1 = 3 N2 = 1 N3 = 2 N1 = 1 N2 = 1 N3 = 1

Espero ter ajudado!

[code]import java.util.Scanner;

public class maiorNumero {

public static void main(String[] args) {

    int n1, n2, n3;
    Scanner s = new Scanner(System.in);
    System.out.println("Digite Valor 1:");
    n1 = s.nextInt();
    System.out.println("Digite Valor 2:");
    n2 = s.nextInt();
    System.out.println("Digite Valor 3:");
    n3 = s.nextInt();
    System.out.println("---------------------------------------------------");
    
    if (n1 == n2 && n2 == n3) {
        System.out.println("Valores iguais");
    }
    if (n1 > n2 && n1 > n3) {
        System.out.println("O maior valor é " + n1);
    } else if (n2 > n1 && n2 > n3) {
        System.out.println("O maior valor é " + n2);
    } else if (n3 > n1 && n3 > n2) {
        System.out.println("O maior valor é " + n3);
    }
}

}[/code]