Aprendendo o Básico

7 respostas
isaiasfiap

Pessoal, eu ainda estou aprendento o básico, seleção - if, else, ou repetição - for, while… enfim, estou com um problemão em um exercício q parece fácil, já tentei de tudo, mais até agora, nada…

Escreva um algoritmo que leia 50 valores e encontre o maior e o menor deles. Mostre o resultado.

import javax.swing.*;
 
public class exec9 
{
    
    public static void main(String[] args) 
    	{
    	
   		int num, maior, menor, i=1;
  
  			num = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite um número"));
    		
    			maior = num;
    			menor = num;    	
    			
   				while(i<=50)
    		{
    			    
    			if (num > maior)
    				maior = num;
    				
    				if (num < menor)
    					menor =  num;	
    						
			}
    		System.out.println("O mairo número é o:" + maior);
    		System.out.println("O menor número é o:" + menor);
    		
    	}
}

7 Respostas

GustavoLaguna

Qual a sua dúvida?

Vai por partes, primeiro voce tem que ler os 50 valores. Voce vai digitar todos eles? Aconselho a colocar uns 10 que vai dar na mesma e pelo menos voce faz mais rápido a entrada.

isaiasfiap

Oi Gustavo, quando eu compilo e coloco pra rodar, ele não dá erro, mas… eu só consigo digitar um único número e ele nem entra no loop. O pior é q eu to seguindo a estrutura de um monte de algoritimo relacionado q tenho em livros, apostilas baixadas da net, e nda funciona.

jayrmotta

Tem algumas coisas erradas no código também ...

Use um For ou então incremente seu i no while

import javax.swing.*;   
  
public class exec9   
{   
       
    public static void main(String[] args)   
        {   
           
        int num, maior = 0, menor, i=1;
        num = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite um número"));
        menor = num;
        maior = num;    
          for(i=1;i <= 49;i++) {
            num = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite um número")); 
            if (num > maior) { maior = num; }
            if (num < menor) { menor = num; }
            }   
            System.out.println("O mairo número é o:" + maior);   
            System.out.println("O menor número é o:" + menor);   
               
        }   
}
el_loko

Acho que é melhor você usar o For pra essa função…

Mais lembrando que geralmente quando precisamos descobrir o maior e o menor número, nós igualamos o maior número a zero e o menor à um valor maior, isso depende do programa…

Ex: Se você vai fazer um programa que pede o peso da pessoa, o menor valor poderia receber um valor inicial de 250…e no código ficaria + ou - assim…

int maior, menor;

maior = 0;
menor = 250;

Depois você implementa o código abaixo de acordo com a necessidade do seu programa…

for(i=1;i <= 50;i++) {  
             num = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite um número"));   
             if (num > maior) { maior = num; }  
             if (num < menor) { menor = num; }  
             }     
             System.out.println("O mairo número é o:" + maior);     
             System.out.println("O menor número é o:" + menor);     


 if (num > maior) { maior = num; }  
             if (num < menor) { menor = num; }
ViniGodoy

Isso não é necessário. Do jeito que ele fez está certo. No passo inicial ele assumiu que o maior e o menor número lido foi o primeiro, o que está certo. A partir daí, é só fazer as comparações a partir desse.

Para fazer do seu jeito, é melhor usar de menor e maior valores Integer.MIN_VALUE e Integer.MAX_VALUE. É garantido que não existe nada menor e nada maior do que esses. :wink:

el_loko

Não sabia desse “detalhe”…

Obrigado!

isaiasfiap

Vlw Galera, brigadão pela força, através desse exercício, consegui resolver outros tbm! a lógica e algoritimo é essencial, mas saber a sintaxe da linguagewm q vc está utilizando, também é muito importante hauahau, obrigado de novo!

Criado 20 de abril de 2008
Ultima resposta 21 de abr. de 2008
Respostas 7
Participantes 5