Boa noite!
Por gentileza, alguém pode me indicar o erro.
Preciso que o método retorne o maior dentre os números digitados.
Dentro do main, o método retorna o maior, mas quando ele está fora , retorna o ultimo digitado.
obrigado!
public class MaiorDosNumeros {
publicstaticvoidmain(String[]args){Scanneri=newScanner(System.in);intcount=0;intn=0;while(count<5){count++;System.out.println("Informe o "+count+"º numero");n=i.nextInt();}System.out.println("O maior "+Maior(n));}publicstaticintMaior(intk){intmaior=0;if(k>maior){maior=k;}returnmaior;}
Você está usando uma IDE? Acho que te ajudaria a entender o que está acontecendo, se rodar esse programa com um depurador (debugger).
Com isso você consegue ver o que o programa faz passo a passo e vai entender porque nao está funcionando.
Se nao tiver, vou tentar te ajudar com uma linha de pensamento: você quer “método retorne o maior dentre os números digitados.”. O método Maior tá recebendo quantos números para comparar? Todos os números digitados ou apenas 1 número?
Alberto_Rocha_Pinal1
Olá Abel!
Estou usando o netBeans
Ele só está comparando o último numero digitado.
Eu havia usado um laço de for com i = 0; i < k; i++ e também não deu certo
I
israelSilva
O erro está no fato de vc estar usando uma variável para armazenar os números, que por sua vez só é capaz de “Armazenar” um número, vc tem que usar um vetor de inteiros,
R
Rodrigo_Marden
O fato é que ele está passando para o método maior apenas o último valor digitado.
Existem duas formas de resolver, ou você passa um vetor para o método e faz toda a comparação, ou chama o método Maior toda as vezes que um número for digitado, passando o número digitado e o maior número até aquele momento.
//EntradadeDadosfor(inti=1;i<vetor.length;i++){System.out.print("Numero "+i+":");vetor[i]=teclado.nextInt();}//CalculoparasaberqualoMaiorElementodoVetorfor(inti=1;i<vetor.length;i++){if(vetor[i]>maiorElemento){maiorElemento=vetor[i];}}//ExibeomaiorvalorSystem.out.println("Maior Valor informado "+maiorElemento);}
}
FabioSaid
Você pode fazer dessa forma também.
O que eu acho melhor
//Codificação
import java.util.Scanner;
public class MaiorNumero {
publicstaticvoidmain(String[]args){System.out.println("Maior valor Informado");maiorValor();}publicstaticvoidmaiorValor(){Scannerteclado=newScanner(System.in);intmaiorElemento=0;intvetor[]=newint[5];//Pega dados de entradafor(inti=1;i<vetor.length;i++){System.out.print("Numero "+i+" : ");vetor[i]=teclado.nextInt();//Calculo para saber qual o maior Elementoif(vetor[i]>maiorElemento){maiorElemento=vetor[i];}}System.out.println(maiorElemento);}
}
Manasses_Eugenio
uma forma melhor de fazer esse codigo e se melhorando esse metodos ficaria assim, e serve ate mesmo para encotrar o menor valor e ficaria assim
importjava.util.Scanner;publicclassretornaMaiorEMenor{staticintretornaMaior(int[]vetor){intmaior=vetor[0];for(inti=1;i<vetor.length;i++){if(vetor[i]>maior){maior=vetor[i];}}return(maior);}staticintretornaMenor(int[]vetor){intmenor=vetor[0];for(inti=1;i<vetor.length;i++){if(vetor[i]<menor){menor=vetor[i];}}return(menor);}publicstaticvoidmain(String[]args){int[]vetor=newint[4];Scannerdados=newScanner(System.in);for(inti=0;i<4;i++){System.out.println("digite o "+(i+1)+"ª valor: ");vetor[i]=dados.nextInt();}System.out.println("maior valor:"+retornaMaior(vetor));System.out.println("menor valor:"+retornaMenor(vetor));}}