Maior número de todos

13 respostas
F

Ola amigos, fiz um exercício e funcionou perfeitamente. Estou postando aqui somente para me dizerem se existe possibilidade de melhorar o código ou se do jeito que ele está, está correto.

import java.util.Scanner;


public class NumerosInteiros {
	public static void main(String[] args){
		
		Scanner entrada = new Scanner(System.in);
		
		int a;
		int b;
		int c;
		int d;
		int e;
		
		System.out.print("Digite o primeiro número: ");
		a = entrada.nextInt();
		
		System.out.print("Digite o segundo número: ");
		b = entrada.nextInt();
		
		System.out.print("Digite o terceiro número: ");
		c = entrada.nextInt();
		
		System.out.print("Digite o quarto número: ");
		d = entrada.nextInt();
		
		System.out.print("Digite o quinto número: ");
		e = entrada.nextInt();
		
		if(a > b && a > c && a > d && a > e){
			System.out.print("A é o maior número.");
		}
		if(b > a && b > c && b > d && b > e){
			System.out.print("B é o maior número.");
		}
		if(c > a && c > b && c > d && c > e){
			System.out.print("C é o maior número.");
		}
		if(d > a && d > b && d > c && d > e){
			System.out.print("D é o maior número.");
		}
		if(e > a && e > b && e > c && e > d){
			System.out.print("E é o maior número.");
		}
	}

}

As vezes tenho a impressão de ser difícil fazer, mas é fácil e vice-versa.

Obrigado para quem tiver disponibilidade de responder.

13 Respostas

pedruhenrik

sim tem como melhorar, pelo menos no meu ponto de vista.

por exemplo da p/ fazer um for e receber os valores com poucas linhas.

att,

slashjvc

E aí fabianozonta!!

Cara, o sue exercício está correto sim. O quê você pode melhorar é como será feita a leitura desse seus números.
Já ouviu falar em array? Você pode endereçar esses valores inteiros através de um índice, e percorrer seus números dentro de estrutura de repetição, fazendo o filtro se aquele número é o maior em relação aos outros.

Dá uma estudada nesse conceito :slight_smile:

[]'s

diego_qmota

Crie uma classe especializada nesta operação e ficará muito mais fácil fazer isso.

Declaração da classe

public class MaiorNumero {

private int maiorNum;

public MaiorNumero () {
   this.maiorNum = 0;
}

public void armazenaMaiorNumero(int num) {
   if (num > getMaiorNum())  {
   
      setMaiorNum(num);

   }    
}

public int getMaiorNum() {
   return maiorNum;
}

public void setMaiorNum(int num) {
   this.maiorNum = num;
}

}

Utilização da classe

MaiorNumero maiorNumObj = new MaiorNumero();

// ... seu código para recuperar a,b,c,d,e

maiorNumObj.armazenaMaiorNumero(a);
maiorNumObj.armazenaMaiorNumero(b);
maiorNumObj.armazenaMaiorNumero(c);
maiorNumObj.armazenaMaiorNumero(d);
maiorNumObj.armazenaMaiorNumero(e);

System.out.println("O maior número é " + maiorNumObj.getMaiorNum());
ViniGodoy

Sim:
1. Declare as variáveis somente onde for utiliza-las pela primeira vez;
2. Jamais use um método diferente do nextLine() para ler do console (ou vc terá problemas);
3. Use o comando else.
4. Mantenha consistência nas suas mensagens. Para o usuário, vc perguntou "o quinto número", mas na hora de exibir quem é o maior, vc disse que ele era "E".

import java.util.Scanner;

public class NumerosInteiros {
	public static void main(String[] args){
		
		Scanner entrada = new Scanner(System.in);
		
		System.out.print("Digite o número A: ");
		int a = Integer.parseInt(entrada.nextLine());
		
		System.out.print("Digite o número B: ");
		int b = Integer.parseInt(entrada.nextLine());
		
		System.out.print("Digite o número C: ");
		int c = Integer.parseInt(entrada.nextLine());
		
		System.out.print("Digite o número D: ");
		int d = Integer.parseInt(entrada.nextLine());
		
		System.out.print("Digite o número E: ");
		int e = Integer.parseInt(entrada.nextLine());
		
		if(a > b && a > c && a > d && a > e){
			System.out.print("A é o maior número.");
		}
		else if(b > a && b > c && b > d && b > e){
			System.out.print("B é o maior número.");
		}
		else if(c > a && c > b && c > d && c > e){
			System.out.print("C é o maior número.");
		}
		else if(d > a && d > b && d > c && d > e){
			System.out.print("D é o maior número.");
		}
		else {
			System.out.print("E é o maior número.");
		}
	}
}

No mais, o código já estava no caminho certo, parabéns! :)

PS: Se você souber arrays, ou souber o comando "for", é melhor usá-los, como os colegas indicaram. O código ficará bem menor.

F

Poxa gente. muitíssimo obrigado.

pedruhenrik

pensei em algo do tipo:

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class Teste2 {
	public static void main(String[] args) {

		Scanner entrada = new Scanner(System.in);

		List<Integer> n = new ArrayList<Integer>();

		for (int cont = 1; cont < 6;) {
			System.out.print("Digite o " + cont + "° número: ");
			n.add(Integer.parseInt(entrada.nextLine()));
			cont++;
		}
		
		System.out.println("Maior numero digitado foi " + (n.indexOf(Collections.max(n))+1) + " valor " + Collections.max(n));
	}
}

att,

A

fabianozonta tem só um pequeno bug no seu código (muito comum por sinal):

Experimente digitar: A=5,B=5,C=4,D=3,E=2

O maior número é 5, mas como ele está repetido ele acaba não caindo em nenhum if.

diego.sas
package br.com.modulo.um;

import java.util.Scanner;

public class NumerosInteiros {   
    public static void main(String[] args)
    {              
        Scanner entrada = new Scanner(System.in);   
        int [] array  = new int[5];  
        int aux = 0;
        int numero = 0;
        for(int x=0; x<array.length; x++)
        {
        	 System.out.print("Digite o número "+ (x + 1) + " : ");
        	 array[x] = entrada.nextInt(); 
        }
        for(int x=0; x<array.length; x++)
        {
        	 if(array[x] > aux)
        	 {
        		 aux = array[x];
        		 numero = x + 1;
        	 }
        	
        }
        System.out.print("O " + numero + "  é o maior número = " + aux);         
           
    }   
  
}
slashjvc

Aqui no GUj é assim fabianozonta: Pediu ajuda, a galera do fórum não exita em trazer informações mais do que úteis!!! Puro Aprendizado^^

F

Sim meu, sou iniciante tanto em Java quanto no fórum.

E isso me mostra o quanto a comunidade é parceira.

Estou de cara pela parceria.

Valeu a todos .

nel

fabianozonta:
Sim meu, sou iniciante tanto em Java quanto no fórum.

E isso me mostra o quanto a comunidade é parceira.

Estou de cara pela parceria.

Valeu a todos .

Isso ai! Aproveita e coloca [Resolvido] no seu tópico.
Abraços e sucesso!

F

100%

F

[Resolvido]

Criado 20 de junho de 2011
Ultima resposta 20 de jun. de 2011
Respostas 13
Participantes 8