… Digamos que eu não estou conseguindo “acumular” os valores digitados pelo usuário, para no final jogar na tela o número maior. Por favor alguma ajuda? Não consigo pensar em nenhuma maneira… Argt.
publicclassMostraNumeroMaior{publicstaticvoidmain(String[]args){intresult=Integer.MIN_VALUE;intcontador=0;Scannerscan=newScanner(System.in);do{System.out.println("Digite um valor : ");intnum=scan.nextInt();if(num>result)result=num;contador++;}while(contador<=5);System.out.println("Maior numero digitado foi : "+result);}}
Abraços.
D
Damiao_Cunha
seria melhor vc ir colocando em um vetor, para que qndo vc inserir todos, ai vc comparar cada um para pegar o maior…
entendeu??
vlw
francinerosa
@danieldomingues86
Na realidade eu gostaria de fazer em classes separadas, mas não consigo. Meu professor mandou fazer uma classe para a lógica e outra para aplicar a lógica. Mas, não consigo acumular os 15 números digitados para depois o meu programa achar o maior. Penso que falta um acumulador mas, não consigo aplica-lo e já tentei de diversas formas.
@Dami? Cunha
Eu ainda não conheço arrays, por isso meu programa está meio “primitivo”. E não li sobre isso ainda porque não quero confundir as coisas! heh
Obrigada.
D
DianaPJ
Bom dia Francine,
Você sabe que são fixos 15 números que devem ser lidos…confere?
Esquecendo arrays e tudo mais…vamos imaginar o seguinte:
Você deve ter 2 classes: 1 que vai armazenar os 15 números digitados e o maior número…e outra que vai instanciar a 1a e começar a guardar os números que você digitou…e ao final apresentar o maior…certo?
Uma fórmula para maior e menor número seria a seguinte:
maior = 0;
todo número que vc digitar depois…compara se é >maior…se for, maior=numero_digitado…e assim por diante até terminar os 15…
e para menor:
menor = 100;
todo número que vc digitar depois…compara se é <menor…se for, menor=numero_digitado…e assim por diante…
espero ter ajudado…
[]'s
>
D
Damiao_Cunha
ok…
intao sem vetor, a forma mais simples é assim…
importjava.util.Scanner;/* * To change this template, choose Tools | Templates * and open the template in the editor. *//** * * @author Damiao */publicclassMaiorNumero{publicstaticvoidmain(Stringargs[]){Scannersc=newScanner(System.in);intcont=0,num=0,maior=0;do{System.out.print("Informe o numero: ");num=sc.nextInt();if(num>maior)maior=num;cont++;}while(cont<15);System.out.print("O maior é: "+maior);}}
vlw
renamed
Dami? Cunha:
ok…
intao sem vetor, a forma mais simples é assim…
importjava.util.Scanner;/* * To change this template, choose Tools | Templates * and open the template in the editor. *//** * * @author Damiao */publicclassMaiorNumero{publicstaticvoidmain(Stringargs[]){Scannersc=newScanner(System.in);intcont=0,num=0,maior=0;do{System.out.print("Informe o numero: ");num=sc.nextInt();if(num>maior)maior=num;cont++;}while(cont<15);System.out.print("O maior é: "+maior);}}
vlw
Seu programinha tem um bug!!! Se eu só digitar valores negativos, ele vai falar que o maior é zero.
Para evitar isso, assuma que o primeiro número que o usuário digitou é o maior (o que é verdade afinal ele só terá digitado um número então ele é o maior) e use esse número para comparar se é maior que o segundo, sempre armazenando o maior (se o segundo número > primeiro; maior = segundo numero).
ok?
D
Damiao_Cunha
não sei se ela quer com valores negativos…
realmente só fiz pra positivos…
vlw
francinerosa
Boa noite pessoal! Agradeço a atenção dispensada…!
@DianaPJ
Bom, eu entendo a lógica mas estou com dificuldade em aplica-la… Pois não estou conseguindo passar o “número” para a classe de “calculos” e quando o teste começa ele jogana tela somente o ultimo número digitado… Como acumulo esses números? =s
@Dami? Cunha Hmm uma dúvida, porque tenho que declarar o Scanner na classe calculos? Na classe main não é o suficiente? Há outro objetivo?
@renamed No momento não estamos entrando em maiores detalhes, necessito verificar se a minha logica funciona! E isso não está acontecendo…
Obrigada!
D
Damiao_Cunha
isso mesmo, só precisa no main mesmo…
foi pq eu fiz um unico metodo, + como vc esta separandoe dois metodos, só precisa declarar ele onde vc vai usar…
vlw
L
lgweb
publicstaticvoidmain(String...xunda){List<Integer>listInteger=newArrayList<Integer>();Scannersc=newScanner(System.in);do{System.out.print("Informe o numero: ");listInteger.add(sc.nextInt());}while(listInteger.size()<15);System.out.print("O maior é: "+Collections.max(listInteger));}
L
lgweb
Naum tinha visto que era em classes separadas,pois bem:
publicclassprincipal()publicstaticvoidmain(String...xunda){List<Integer>listInteger=newArrayList<Integer>();Scannersc=newScanner(System.in);do{System.out.print("Informe o numero: ");listInteger.add(sc.nextInt());}while(listInteger.size()<15);System.out.print("O maior é: "+Calculos.getMaiorNumero(listInteger));})publicclassCalculos{publicstaticIntegergetMaiorNumero(List<Integer>listInteger){returnCollections.max(listInteger);}}
Sem usar akele monte de contadores,pra que reinventar a roda a classe collections tem muita coisa pronta pra quem trabalha com listas e tal,e sempre bom ante de escreve codigo ,ainda mais pra quem esta comecando dar uma olhada na api.
D
Damiao_Cunha
lgweb:
Naum tinha visto que era em classes separadas,pois bem:
publicclassprincipal()publicstaticvoidmain(String...xunda){List<Integer>listInteger=newArrayList<Integer>();Scannersc=newScanner(System.in);do{System.out.print("Informe o numero: ");listInteger.add(sc.nextInt());}while(listInteger.size()<15);System.out.print("O maior é: "+Calculos.getMaiorNumero(listInteger));})publicclassCalculos{publicstaticIntegergetMaiorNumero(List<Integer>listInteger){returnCollections.max(listInteger);}}
Sem usar akele monte de contadores,pra que reinventar a roda a classe collections tem muita coisa pronta pra quem trabalha com listas e tal,e sempre bom ante de escreve codigo ,ainda mais pra quem esta comecando dar uma olhada na api.
o problema é que ela ta iniciando, eu antes tinha sugerido ela usar vetor, + ela dise q não tinha visto ainda…
itendeu??? não adianta fazer por arraylist…
vlw
renamed
Pois é, eu te mostrei o problema na lógica.
Assumir o maior como zero pode não funcionar. Na verdade, não vai em alguns casos.
Acredito que isso não seja “entrar em maiores detalhes” e sim fazer um algoritmo que funcione corretamente.