Problema com lógica(resolvido)

11 respostas
Riccelli

olá sou novo por aqui e também nessa área e gostaria que alguém me ajudasse a fazer um programinha básico que é ler três números e imprimir em ordem crescente e decrescente.
Por favor alguém me ajuda pois estou precisando.

11 Respostas

ribclauport

Ricceli, você deve postar sua dúvida, tem que tentar fazer algo, ae o pessoal te ajuda, pois como te ajudar se você não está com nenhuma dúvida?

Já instalou o jdk?
Vai fazer isso para trabalho de faculdade ou curso?
Ja sabe o básico da linguagem java?
???

kenmasters_

Ae ribclauport, eu e Riccelli, estudamos em faculdade, e o professor passou uma lista de exercicio valendo pontos, então eu criei o programinha, para o usuario dar entrada em 3 numeros, e logo apos ser mostrado em ordem crescente e mais abaixo a ordem decrescente. o problema é q eu não consegui fazer o programa funcionar corretamente :frowning: , quando o 2º valor fornecido pelo o usuario é maior que o 1º e 3º valor. obs: o programa deve ser feito usando apenas ( if ) 8)

edu_fernandes

Postem o que já foi criado por favor.

kenmasters_
import java.util.*;

public class Exercicio20

{

public static void main(String args[])

{

int num1;

int num2;

int num3;
Scanner leia = new Scanner(System.in);
	
	System.out.println("Digite numero");
	
	num1 = leia.nextInt();
	
	System.out.println("Digite numero");
	
	num2 = leia.nextInt();
	
	System.out.println("Digite numero");
	
	num3 = leia.nextInt();
	
	if(num1 < num2)
		{
		if(num1 < num3)
			System.out.println("A ordem decrescente = "+num3+","+num2+","+num1);
		}		
	if(num3 < num2)
		{
		if (num2 < num1)
			System.out.println("A ordem decrescente = "+num1+","+num2+","+num3);
		}	
}

}

Mordor

Poderia usar metodos melhores de ordenação mas ficaria muito complexo.

import java.util.Scanner;

public class Exercicio20 {

	public static void main(String[] args) {
		Integer[] entrada = new Integer[5];
		Integer[] crescente;
		Integer[] decrescente;

		Scanner leia = new Scanner(System.in);

		System.out.print("\nDigite o primeiro numero: ");
		entrada[0] = leia.nextInt();

		System.out.print("\nDigite o segundo numero: ");
		entrada[1] = leia.nextInt();

		System.out.print("\nDigite o terceiro numero: ");
		entrada[2] = leia.nextInt();

		crescente = entrada;
		trocaPosicaoCrescente(crescente, 0, 1);
		trocaPosicaoCrescente(crescente, 1, 2);
		trocaPosicaoCrescente(crescente, 0, 1);
		
		System.out.println("A ordem crescente: [" + crescente[0] + ", " + crescente[1] + ", " + crescente[2] + "]");
		
		decrescente = entrada;
		trocaPosicaoDecrescente(decrescente, 0, 1);
		trocaPosicaoDecrescente(decrescente, 1, 2);
		trocaPosicaoDecrescente(decrescente, 0, 1);
		
		System.out.println("A ordem decrescente: [" + decrescente[0] + ", " + decrescente[1] + ", " + decrescente[2] + "]");
	}

	public static void trocaPosicaoCrescente(Integer[] vetor, int posicao1, int posicao2) {
		if (vetor[posicao1] &gt; vetor[posicao2]) {
			int temp = vetor[posicao1];
			vetor[posicao1] = vetor[posicao2];
			vetor[posicao2] = temp;
		}
	}

	public static void trocaPosicaoDecrescente(Integer[] vetor, int posicao1, int posicao2) {
		if (vetor[posicao1] &lt; vetor[posicao2]) {
			int temp = vetor[posicao1];
			vetor[posicao1] = vetor[posicao2];
			vetor[posicao2] = temp;
		}
	}
}
denisspitfire

acho que esta muito ninja pro nivel do problema… o professor vai ver e ja vai balançar a cabeça…
Voces entenderam como funciona o programa acima? senao agente tenta ajudar novamente.

kenmasters_

Cara vimos vetores em linguagem C, mais como iniciamos java agora em fevereiro. esta confuso pra gente vetor em java. nesse momento. da pra entender mais ou menos. o professor disse q ainda vai mostrar vetor pra gente detalhado daqui umas semanas. estamos em if, while, do. por enquanto

Mordor

Vai ter que fazer if’s aninhados:

int num1;  
        int num2;  
        int num3;  
  
        Scanner leia = new Scanner(System.in);  
  
        System.out.print("\nDigite o primeiro numero: ");  
        num1 = leia.nextInt();  
  
        System.out.print("\nDigite o segundo numero: ");  
        num2 = leia.nextInt();  
  
        System.out.print("\nDigite o terceiro numero: ");  
        num3 = leia.nextInt();  
  
        if(num1 &lt; num2) {
        	if(num2 &lt; num3) {
        		System.out.println("A ordem crescente: [" + num1 + ", " + num2 + ", " + num3 + "]");
        	} else {
        		if(num1 &lt; num3) {
        			System.out.println("A ordem crescente: [" + num1 + ", " + num3 + ", " + num2 + "]");
        		} else {
        			System.out.println("A ordem crescente: [" + num3 + ", " + num1 + ", " + num2 + "]");
        		}
        	}
        } else {
        	if(num1 &lt; num3) {
        		System.out.println("A ordem crescente: [" + num2 + ", " + num1 + ", " + num3 + "]");
        	} else {
        		if(num2 &lt; num3) {
        			System.out.println("A ordem crescente: [" + num2 + ", " + num3 + ", " + num1 + "]");
        		} else {
        			System.out.println("A ordem crescente: [" + num3 + ", " + num2 + ", " + num1 + "]");
        		}
        	}
        }
kenmasters_

Valeu galera!
estudando o codigo aki pra aprimorar o raciocinio logico. brigadão galera… :thumbup:

Riccelli

valeu galera ajudou muito. :thumbup:

L

editem o tópico e coloquem como resolvido então!

Abraço! :slight_smile:

Criado 7 de março de 2012
Ultima resposta 8 de mar. de 2012
Respostas 11
Participantes 7