Ir ao conteúdo

dada uma sequência de 20 numero achar o maior e o menor.....


Rico Chivela

Posts recomendados

Postado

estou cursando java primeiro ano e tenho algumas dificuldades

 

eu resolvi esse exercicio do seguinte modo

 

import javax.swing.JOptionPane; public class Comparacao {       static  final int r = 0;   static final float aux = 1;    public static void main(String[] args)     {     int  contador;      float numero, maximo, minimo;          maximo = minimo = contador = 0;     maximo = minimo = aux ;          numero = Float.parseFloat(JOptionPane.showInputDialog("Entre com a sequencia dos numeros?"));     if (numero == 0 )     JOptionPane.showMessageDialog(null,"Maximo é : " + (maximo -1) + "" + "Minimo é : "+ (minimo -1 ));     else     {     while ( numero != r )      {      if( numero > maximo )     {     maximo = numero;      }          if( numero  < minimo  )      {     minimo = numero;     }     contador ++;          numero = Float.parseFloat(JOptionPane.showInputDialog("Entre com os Valores?"));      }     JOptionPane.showMessageDialog(null,"Maximo é : " + maximo + "" + "Minimo é : "+ minimo );     }         }}
mas nao consigo obter resultados certos ajudem-me por favor
Postado

Quais as solicitações do exercício?

 

De forma geral:

- remova r, aux e contador

- declare numero, maximo e minimo em linhas separadas e do tipo int

- declare maximo recebendo Integer.MIN_VALUE

- declare minimo recebendo Integer.MAX_VALUE

- Utilize Integer.parseInt ao invés de Float.parseFloat

- mude o texto de pergunta para "Entre com um número (0 para sair)"

- mantenha apenas uma linha de resultado no final do método main, não é necessário usar o if apenas o while

Postado

O exercício pede para entrar com 20 numero reais e quando entrar com o 0 ou chegar ate 20 numero reais o programa deve parar e mostrar o maior e o menor....

Postado

Ok, então, conforme as dicas acima, não remova contador, mantenha o incremento em 1 a cada iteração do laço while.

No while verifique se contador é menor que 20 e número informado não é zero.

Você terá que ajustar a sequência lógica de entradas e comparações para que o último número entrado pelo usuário não seja rejeitado.

Postado

Ok Cara eu fiz do jeito que indicaste mas quando eu coloco zero de inicio ele mostra os valores armazenados em max e min e eu qero que apresenta 0 pk nao houve nenhuma comparação. 

fico assim :

 

import javax.swing.JOptionPane; public class ComparacaoII {        public static void main(String[] args) {          int numero, contador;     int maximo;     int minimo;          contador = 0;     maximo = Integer.MIN_VALUE;     minimo = Integer.MAX_VALUE;          numero = Integer.parseInt(JOptionPane.showInputDialog("Entre com os Valores (Digite 0 para sair)"));     while ( numero !=0 )     {     if ( numero  > maximo   )     maximo = numero;     if (  numero <  minimo )     minimo = numero;     contador ++;     numero = Integer.parseInt(JOptionPane.showInputDialog("Entre com os Valores (Digite 0 para sair)"));     }     JOptionPane.showMessageDialog(null, "O maior numero é :\t"+ maximo + "O menor numero é" + minimo);    }}
Postado

Uma opção seria verificar se contador ainda é zero, ou, outra opção se for aceitar somente números positivos, utilizar Math.max e Math.min

if(contador == 0) {	maximo = 0;	minimo = 0;}

ou 

JOptionPane.showMessageDialog(null, "O maior numero é : "+ Math.max(maximo, 0) + "\nO menor numero é: " + Math.min(minimo,0));

** Faltou mudar o texto para "Entre com um valor".

 

** Faltou controlar se o contador chegou a 20.

Postado

Cweiler Cara muito obrigado consegui fazer o programa usando os resultados que esperava estão todos correto da uma olhadela e diz qualquer coisa: 

import javax.swing.JOptionPane; public class ComparacaoII {        public static void main(String[] args) {          int numero, contador;     int maximo;     int minimo;          contador = 1;          maximo = Integer.MIN_VALUE;     minimo = Integer.MAX_VALUE;         numero = Integer.parseInt(JOptionPane.showInputDialog("Entre com um Valor (Digite 0 para sair)"));     if ( numero < 0 )      JOptionPane.showMessageDialog(null, "Numero negativo entre com valor possitivo");     else if ( numero == 0)     {       JOptionPane.showMessageDialog(null, "Impossivel comparar entre com dois ou mais numeros");     }     else      {       if ( contador == 0)        JOptionPane.showMessageDialog(null, "Numero negativo entre com valor possitivo");       else        {        while (( contador < 20 ) && ( numero != 0 ))     {      if ( numero  > maximo   )      maximo = numero;      if (  numero <  minimo )      minimo = numero;            numero = Integer.parseInt(JOptionPane.showInputDialog("Entre com um Valor (Digite 0 para sair)"));      contador ++;       }            if ( contador == 2 )      {      JOptionPane.showMessageDialog(null, "Comaparaçao nao pode ser feita apenas um valor introduzido deve entrar com mais de um valor");      }      else if ( maximo == minimo )      {      JOptionPane.showMessageDialog(null, "Impossivela comparar Maximo e Minimo com mesmo valor");      }            else      JOptionPane.showMessageDialog(null, "O Maximo é : " + maximo + "\nO Minimo é : " + minimo + " Contador :" + contador);       }           }        }}
Postado

Caso seu contador atinga 20 você irá perder o último número informado.

 

Veja uma solução possível, analise e pergunte os pontos que tiver dúvida:

import javax.swing.JOptionPane;public class ComparacaoII {	public static void main(String[] args) {		int numero;		int contador = 0;		int maximo = Integer.MIN_VALUE;		int minimo = Integer.MAX_VALUE;		while((contador < 20)) {			numero = Integer.parseInt(JOptionPane.showInputDialog("Entre com um Valor (Digite 0 para sair)"));			if(numero < 0) {				JOptionPane.showMessageDialog(null, "Numero negativo, entre com valor positivo");				continue;			} else if(numero == 0) {				break;			}			if(numero > maximo)				maximo = numero;			if(numero < minimo)				minimo = numero;			contador++;		}		switch(contador) {			case 0:				JOptionPane.showMessageDialog(null, "Não foram informados números.");				break;			case 1:				JOptionPane.showMessageDialog(null, String.format("Foi informado apenas o número %s.", maximo));				break;			default:				JOptionPane.showMessageDialog(null, String.format("Foram informados %s números.\nO Maximo é : %s\nO Minimo é : %s", contador, maximo, minimo));				break;		}	}}
Postado

Quanto aos números iguais, o código não irá rejeitar tal situação. Se quiser evitar isso você terá que armazenar todos os valores informados e para cada novo número informado verificar se ele já foi informado previamente e rejeitar a entrada.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!