[Achar a maior e a menor idade] (era: Ajudaaaa)

estou criando um metodo para ver a maior idade e amenor
mas quando eu crio este metodo ela so me devolve o primeiro numero digitado

[code]ublic static void main(String[] args) {

	recebeDados();
	
}
public static void recebeDados(){
	Scanner sc = new Scanner(System.in);
	int idade[]= new int[2];
	String sexo[]=new String[2];
	
	for(int i=0;i<sexo.length;i++){
		
	System.out.println("Digite sua Idade");
    idade[i]= sc.nextInt();
	
    System.out.println("Digite seu sexo");
    sexo[i]=sc.next();
    
	}//fim do for

	maiorIdade( idade[0]);
}//fim dometodo recebeDados

public static void maiorIdade(int idade){
	int maior=idade;

	
	if(maior < idade){
	idade=Math.max(maior, idade);

	}
	
imprimeDados(maior);

}
public static void imprimeDados(int maior){
	System.out.println("A maior idade é: " + maior);

	
	
}

}[/code]

me ajudem por favor, como eu faço para chamar o array inteiro e não suas posições

EDIT (Moderador) - Por favor, use títulos mais elucidativos. “Ajudaaa” não ajuda nada.

e só vai devolver apenas um valor mesmo!!! A chamada ao método maiorIdade(int x) só é chamado uma vez! Vc tem que colocá-lo dentro do laço do for, e passar como argumento a variavel i, pois se não ele nunca vai achar a maior idade já que vc passa o argumento o valor 0.

Mas mesmo assim existe um erro, pois na primeira vez que ele for chamado ele vai jogar como maior valor o primeiro valor do array.

tire o maiorIdade de dentro do metodo recebeDados();

tire o parametro idade de maiorIdade;

faça assim:

[code]public static void maiorIdade(){

int maior = idade[0];

for(int i = 0 ; i<idade.length; i++){
if(idade[i]>maior)
maior = idade[i]
}
System.out.println("idade maior "+maior);
}[/code]

---------------------------------------------------------------------------------------//----------------------------------------------------------------------------------------------------------------

www.godevelopgames.wordpress.com <<< desenvolvimento de jogos!!!

  1. Procure deixar suas funções realizando tarefas específicas. A recebe dados deveria só receber dados, e devolver os dados recebidos. A maior deveria pegar um conjunto de dados e devolver o maior. E a função imprime deveria imprimir. Suas funções não estão retornando nada.

  2. Aprenda a usar um depurador. Vai te ajudar muito.

[code]public static void main(String[] args) {
imprimeMaiorIdade(maiorIdade(recebeDados()));
}

public static int[] recebeDados(){
Scanner sc = new Scanner(System.in);
int idade[]= new int[2];
String sexo[]=new String[2];

for(int i=0;i<idade.length;i++){

  System.out.println("Digite sua Idade");
  idade[i]= sc.nextInt();
	
  System.out.println("Digite seu sexo");
  sexo[i]=sc.next();

}//fim do for

return idade;

}//fim dometodo recebeDados

public static void maiorIdade(int[] idades){
int maior = 0;
for (int idade : idades) {
if (idade > maior)
maior = idade; //Não é necessário o max. Você já sabe que idade > maior
}
return maior;
}

public static void imprimeMaiorIdade(int idade){
System.out.println("A maior idade é: " + idade);
}
[/code]

  1. Ah sim, e ao criar tópicos, dê um tópico mais descritivo do que “Ajudaaaa”.

Outra solução é usar o Arrays para fazer a ordenação, assim tu saberás que o último registro é o maior e que o primeiro é o menor;

[code]import java.util.Arrays;
import java.util.Scanner;

public class Main {

/**
 * @param args
 */
public static void main(String[] args) {
	imprimeMaiorIdade(maiorIdade(recebeDados()));           
}


public static int[] recebeDados(){   
	   Scanner sc = new Scanner(System.in);   
	   int[] idade = new int [2];
	   String sexo[]=new String[2];
	           
	   for(int i=0;i<idade.length;i++){   
	               
	      System.out.println("Digite sua Idade");   
	      idade[i]= sc.nextInt();   
	           
	      System.out.println("Digite seu sexo");   
	      sexo[i]=sc.next();   		      
	           
	   }//fim do for   
	     
	    return idade;   
	}//fim dometodo recebeDados   
	       
	public static int maiorIdade(int[] idades){   
	   Arrays.sort(idades);
	   return idades[idades.length-1];
	   
	}   
	  
	public static void imprimeMaiorIdade(int idade){   
	   System.out.println("A maior idade é: " + idade);   
	}      

}[/code]