Exercico

14 respostas
T

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");
		
		}
	}
}

14 Respostas

henriqueluz

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,

T

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

Qual é sua duvida?

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); } } }

MichelSante

Neste caso se:

n1 = 2
n2 = 1
n3 = 2

Não irá exibir nada.
Certo ?

Andre_Rosa

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.

T

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:

T

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); } } }

Boa idéia, vou utilizar o JOptionPane.

cbbeudo

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!

cbbeudo

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,

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);   
        }   
    }   
}
cbbeudo

Bom,

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

MichelSante

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”

cbbeudo

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

Risos...

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);
        	}
        }          
    }   
}
cbbeudo

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!

M
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);
        }
    }
}
Criado 2 de agosto de 2011
Ultima resposta 10 de ago. de 2011
Respostas 14
Participantes 8