Descobrir Maior Menor, Quais são Ímpares e Pares de 5 números (só falta alguns detalhes)

6 respostas
henriquelo

Galera,

Por favor, uma pequena ajuda. Eu preciso ler 5 números, testar e imprimir o Maior e o Menor e também quais são Pares e Ímpares.

Eu escrevi algumas coisas, e peguei algumas prontas de outros modelos (encontrados aqui no GUJ mesmo), mas tem provavelmente algumas imcompatibilidades e meios de se fazer q estão em conflito. Podem me ajudar!?

public class Numeros
{
   public static void main (String[] args)
   {
	int n;
	String string;
	
	System.out.print ("Entre com os valores: ");
	string = SavitchIn.readDouble ();
	n=Integer.parseInt(string);

	int array[] = new int[n];
	int i, m, maior=-1000000, menor=1000000;

        for (i=0; i<n; i++) {
                        m=i+1;
                        string=JOptionPane.showInputDialog("Digite o "+m+"o. número:");
                        array[i]=Integer.parseInt(string);
                        soma+=array[i];
                        if (array[i]>maior) {
                                maior=array[i];
                        }
                        if (array[i]<menor) {
                                menor=array[i];
                        }
                }
        for (i=0; i<n; i++){  
           if ( i % 2 == 0)   
           System.out.println(i+ "Eh Par");   
           else   
           System.out.println(i+ "Eh Impar");   
 }   

	System.out.print ("O maior dos números é "+maior+".");
	System.out.print ( "O menor dos números é "+menor+".");

Fico muito agradecido por quem me ajudar a consertar o código!

6 Respostas

claudneto
public class Exemplo {

	public static void main(String[] args) {
		
		Scanner input = new Scanner(System.in);
		
		int[] numeros = new int[5];
		System.out.println("Digite o 1o numero:");
		numeros[0] = input.nextInt();
		System.out.println("Digite o 2o numero:");
		numeros[1] = input.nextInt();
		System.out.println("Digite o 3o numero:");
		numeros[2] = input.nextInt();
		System.out.println("Digite o 4o numero:");
		numeros[3] = input.nextInt();
		System.out.println("Digite o 5o numero:");
		numeros[4] = input.nextInt();
		
		//Calcular par ou ímpar
		for (int i = 0; i < numeros.length; i++) {
			if (numeros[i] % 2 == 0) {
				System.out.println(numeros[i] + " é par!");
			}
			else {
				System.out.println(numeros[i] + " é ímpar!");
			}
			
		}
		
		System.out.println();
		
		//Maior
		if (numeros[0] - numeros[1] >= 0 && numeros[0] - numeros[2] >= 0 && numeros[0] - numeros[3] >= 0 && numeros[0] - numeros[4] >= 0) {
			System.out.println(numeros[0] + "é o maior!");
		}
		else if (numeros[1] - numeros[0] >= 0 && numeros[1] - numeros[2] >= 0 && numeros[1] - numeros[3] >= 0 && numeros[1] - numeros[4] >= 0) {
			System.out.println(numeros[1] + "é o maior!");
		}
		else if (numeros[2] - numeros[0] >= 0 && numeros[2] - numeros[1] >= 0 && numeros[2] - numeros[3] >= 0 && numeros[2] - numeros[4] >= 0) {
			System.out.println(numeros[2] + "é o maior!");
		}
		else if (numeros[3] - numeros[0] >= 0 && numeros[3] - numeros[2] >= 0 && numeros[3] - numeros[2] >= 0 && numeros[3] - numeros[4] >= 0) {
			System.out.println(numeros[3] + "é o maior!");
		}
		else if (numeros[4] - numeros[0] >= 0 && numeros[4] - numeros[1] >= 0 && numeros[4] - numeros[2] >= 0 && numeros[4] - numeros[3] >= 0) {
			System.out.println(numeros[4] + "é o maior!");
		}
		
		System.out.println();
		//Menor
		if (numeros[0] - numeros[1] < 0 && numeros[0] - numeros[2] < 0 && numeros[0] - numeros[3] < 0 && numeros[0] - numeros[4] < 0) {
			System.out.println(numeros[0] + " é o maior!");
		}
		else if (numeros[1] - numeros[0] < 0 && numeros[1] - numeros[2] < 0 && numeros[1] - numeros[3] < 0 && numeros[1] - numeros[4] < 0) {
			System.out.println(numeros[1] + " é o maior!");
		}
		else if (numeros[2] - numeros[0] < 0 && numeros[2] - numeros[1] < 0 && numeros[2] - numeros[3] < 0 && numeros[2] - numeros[4] < 0) {
			System.out.println(numeros[2] + " é o maior!");
		}
		else if (numeros[3] - numeros[0] < 0 && numeros[3] - numeros[2] < 0 && numeros[3] - numeros[2] < 0 && numeros[3] - numeros[4] < 0) {
			System.out.println(numeros[3] + " é o maior!");
		}
		else if (numeros[4] - numeros[0] < 0 && numeros[4] - numeros[1] < 0 && numeros[4] - numeros[2] < 0 && numeros[4] - numeros[3] < 0) {
			System.out.println(numeros[4] + " é o maior!");
		}
	}
}
numeros[0] - numeros[1] >= 0
Isso é uma "gambiarra" que dá certo! Se a sub do primeiro com o segundo for menor que 0...é pq o segundo é maior que o primeiro!

Uhuull...

Eu fiz com Scanner...faça do jeito que achar melhor!

Marky.Vasconcelos

Muito if e else.

É melhor verificar o maior assim:

int[] ns = {5,8,16,2,0};

int maior = ns[0];//Note se eu colocar "int maior = 0;" e todos os numeros do array forem menores que zero, o resultado de maior vai ser 0;
for(int i : ns)
if(i > maior)
 maior = i;

System.out.println("O maior numero do array é:" + maior);
NataliaOliveira

Acho que ficaria melhor usando laços e imprimir o resultado no final tudo junto.

import javax.swing.JOptionPane;

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

           int maior = 0, menor = 0;
           String pares = "Pares: ", impares = "Ímpares: ";            

           for(int i = 1; i <= 5; i++) {
                int num = Integer.parseInt(JOptionPane.showInputDialog(null,"Entre com o " + i  + "o. número :"));

                //Teste de maior e menor
                if (i == 1) {
                    maior = num;
                    menor = num;
                } else {
                    if (num > maior) {
                        maior = num;
                    } else if (num < menor) {
                        menor = num;
                    }
                }

                //Teste de par e ímpar
                if (i%2 == 0) {
                    pares += " " + num;
                } else {
                    impares += " " + num;
                }
           }

           JOptionPane.showMessageDialog(null,"O maior dos números é " + maior);
           JOptionPane.showMessageDialog(null,"O menor dos números é " + menor);
           JOptionPane.showMessageDialog(null,pares + "\n" + impares);
     }
}
henriquelo

claudneto, Mark_Ameba e NataliaOliveira!

Valeu mesmo por responderem!

Agora se eu quisesse indicar QUANTOS (a quantidade mesmo dentre os 5 números lidos) são pares e quantos são ímpares? Teria que inserir um contador dentro do FOR

for (i=0; i<n; i++){    
            if ( i % 2 == 0)     
               int qtdPar =  qtdPar++;
               System.out.println(i+ "Eh Par");
            else     
               int qtdImp =  qtdImp++;
               System.out.println(i+ "Eh Impar");

   System.out.print ("A quantidade de numeros pares é "+qtdPar+".");
   System.out.print ("A quantidade de numeros ímpares é "+qtdImp+".");

Tá certo isso!?

Marky.Vasconcelos
henriquelo:
claudneto, Mark_Ameba e NataliaOliveira!

Valeu mesmo por responderem!

Agora se eu quisesse indicar QUANTOS (a quantidade mesmo dentre os 5 números lidos) são pares e quantos são ímpares? Teria que inserir um contador dentro do FOR

for (i=0; i<n; i++){    
            if ( i % 2 == 0)     
               int qtdPar =  qtdPar++;
               System.out.println(i+ "Eh Par");
            else     
               int qtdImp =  qtdImp++;
               System.out.println(i+ "Eh Impar");

   System.out.print ("A quantidade de numeros pares é "+qtdPar+".");
   System.out.print ("A quantidade de numeros ímpares é "+qtdImp+".");

Tá certo isso!?

Coloque as variaveis de qtdPar e qtdImp fora do if, se não ele será criado toda hora que entrar na condição.

int qtdPar, qtdImp;
            for (i=0; i<n; i++){    
            if ( i % 2 == 0){
              qtdPar++;
               System.out.println(i+ "Eh Par");
            }else{ //Quando voce não coloca os colchetes só é executado a proxima linha de código pela condição
               qtdImp++;
               System.out.println(i+ "Eh Impar");
            }}
   System.out.print ("A quantidade de numeros pares é "+qtdPar+".");
   System.out.print ("A quantidade de numeros ímpares é "+qtdImp+".");
henriquelo

É verdade brother…valeu mesmo! pela dica!!!

[]'s :smiley:

Criado 10 de outubro de 2008
Ultima resposta 10 de out. de 2008
Respostas 6
Participantes 4