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.
importjavax.swing.*;publicclassexec9{publicstaticvoidmain(String[]args){intnum,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);}}
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
importjavax.swing.*;publicclassexec9{publicstaticvoidmain(String[]args){intnum,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…
intmaior,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.
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!