Ir para conteúdo
Fórum Script Brasil
  • 0

Identificando os 2 maiores números


PaoComMiojo

Pergunta

lá vamos nós de novo :D .... é o seguinte, tem alguma coisa que não to conseguindo captar nesse exercício....

digo ao usuário pra digitar 10 números (sem complicações extras, suponhamos que ele digitará apenas números inteiros hehehehehe)

eu preciso no final do programa, dizer quais foram os 2 maiores números digitados por ele...

com um numero maior eu consigo fácil, mas 2 números, não tá funcionando direito o programa, ele até roda, porém depende da sequencia de números que digitar, o 2° maior numero não grava adequadamente.... então, alguém poderia dar uma olhada e dar uma luz, por favor :) :) :)

package Exercícios;

//@author PaoComMiojo
import java.util.Scanner;

public class num_maior_e_2num_maior {
    public static void main(String[] args){
        Scanner entrada = new Scanner(System.in);
        int num,
            maior,
            maior2 = 0,
            count = 1; 
        
        System.out.println("A seguir será pedido a voce, que digite 10 numeros aleatórios,"
                + " porém, devem ser inteiros.");
        System.out.printf("Digite o %d° número: ", count);
         num = entrada.nextInt();
         count++;
         maior = num;
         
        while (count <= 10){
            System.out.printf("Digite o %d° número: ", count);
            num = entrada.nextInt();
            if (num > maior) {
                maior = num;
            }
            if (num > maior2 && num < maior) {
                maior2 = num;
            }
            count++;
        }
        System.out.printf("O maior número que voce digitou foi: %d\n", maior);
        System.out.printf("O segundo maior número que voce digitou foi: %d\n", maior2);
        
        
    }
    

}

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Ola camarada faz um tempo que não mexo com java, então vou só falar da logica.

int m, m2, num;

while{
    num = entrada;

    if (num > m){
        m2 = m;
        m = num;
    }
    else if (num > m2){
        m2 = num;
    }
}

print(m, m2)

O if funciona como uma fila e garante que o m seja sempre o numero maior e m2 seja o segundo maior, pois m2 = m e depois m = num

else if é outra parte importante, economiza um teste logico

Link para o comentário
Compartilhar em outros sites

  • 0

Ola camarada

Verdade que o else if nunca vai executar se você digitar sempre números crescentes, e isso não é um erro, é o correto nesse código que apresentei

O if do código faz todo o trabalho nesse caso

Link para o comentário
Compartilhar em outros sites

  • 0

Ola amigo, eu acho que você não executou de forma correta a logica que te passei.

Então para facilitar, vai ai o codigo

public class NumeroMaior {    
    public static void main(String[] args) {
        int m = 0, m2 = 0, num;
    
        Scanner entrada = new Scanner(System.in);
        
        System.out.println("Entre dez numeros inteiros ");
        
        for (int count = 0; count < 10; count++){
            num = entrada.nextInt();
            
            if (num > m){
                m2 = m;
                m = num;
            }
            else if (num > m2){
                m2 = num;
            }
            System.out.println("Maior >>> " + m + "\n" + "Segundo maior >>> " + m2);
        } 
    }
    
}

Enxuguei os prints deixando apenas o necessário para visualizar o código funcionando.

Apos cada entrada um print mostra o maior e o segundo maior já processados na ordem correta

Link para o comentário
Compartilhar em outros sites

  • 0

Deu certo sim, entendi o q tu escreveu, o problema é q esqueci de colocar o else antes do segundo if.... ae ferrava tudo.... muito obrigado pela ajuda cara, eu sei q é chato quando o bagulho tah certo e outro diz q tah errado, não fiz de cabeça dura não hehehehehehe, so quero aprender mesmo =D.... to tentando aprender por conta, através da internet, então, quando tenho duvidas o fórum é meu auxilio =DDD

ahhh e quando postei, não conhecia o for ainda hehehehhehe, agora fica bem mais enxuto o programa :P :P

vlw =D

Editado por PaoComMiojo
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...