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 {
public static void main(String[] args) {
Scanner i = new Scanner(System.in);
int count = 0;
int n = 0;
while (count < 5) {
count++;
System.out.println("Informe o " + count + "º numero");
n = i.nextInt();
}
System.out.println("O maior " + Maior(n));
}
public static int Maior(int k) {
int maior = 0;
if (k > maior) {
maior = k;
}
return maior;
}
}
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?
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
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,
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.
Certo.
Obrigado pela dica!
Valeu, obrigado pela dica!
Olá, Alberto ! Tenta fazer desse jeito
(Caso queria de forma diferente ,me avisa :D)
import java.util.Scanner;
public class MaiorNumero {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
int[] vetor = new int[5];
int maiorElemento = 0;
// Entrada de Dados
for (int i = 1; i < vetor.length; i++) {
System.out.print("Numero " + i + ":");
vetor[i] = teclado.nextInt();
}
// Calculo para saber qual o Maior Elemento do Vetor
for (int i = 1; i < vetor.length; i++) {
if (vetor[i] > maiorElemento) {
maiorElemento = vetor[i];
}
}
// Exibe o maior valor
System.out.println("Maior Valor informado " + maiorElemento);
}
}
Você pode fazer dessa forma também.
O que eu acho melhor 
//Codificação
import java.util.Scanner;
public class MaiorNumero {
public static void main(String[] args) {
System.out.println("Maior valor Informado");
maiorValor();
}
public static void maiorValor() {
Scanner teclado = new Scanner(System.in);
int maiorElemento = 0;
int vetor[] = new int[5];
//Pega dados de entrada
for(int i = 1;i<vetor.length;i++) {
System.out.print("Numero "+i+" : ");
vetor[i] = teclado.nextInt();
//Calculo para saber qual o maior Elemento
if(vetor[i]>maiorElemento) {
maiorElemento = vetor[i];
}
}
System.out.println(maiorElemento);
}
}
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
import java.util.Scanner;
public class retornaMaiorEMenor {
static int retornaMaior(int[] vetor){
int maior = vetor[0];
for (int i = 1 ; i < vetor.length; i++){
if (vetor[i] > maior){
maior = vetor[i];
}
}
return(maior);
}
static int retornaMenor(int[] vetor){
int menor = vetor[0];
for (int i = 1 ; i < vetor.length; i++){
if (vetor[i] < menor){
menor = vetor[i];
}
}
return(menor);
}
public static void main(String[] args) {
int[] vetor = new int[4];
Scanner dados = new Scanner(System.in);
for (int i = 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));
}
}
tem esse metodo
static int[] processa(int[] vetor) {
int[] resultado = new int[2];
resultado[0] = vetor[0];
resultado[1] = vetor[0];
for (int i = 1; i < vetor.length; i++) {
if (vetor[i] > resultado[0]) {
resultado[0] = vetor[i];
}
if (vetor[i] < resultado[1]) {
resultado[1] = vetor[i];
}
}
return (resultado);
}
ele retorna o array com na posição 0 o maior valor e na posição 1 o menor