Ir ao conteúdo
  • Cadastre-se

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


Posts recomendados

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
Link para o comentário
Compartilhar em outros sites

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

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

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.

Link para o comentário
Compartilhar em outros sites

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);    }}
Link para o comentário
Compartilhar em outros sites

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.

Link para o comentário
Compartilhar em outros sites

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);       }           }        }}
Link para o comentário
Compartilhar em outros sites

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;		}	}}
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber 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...