Dúvida em metodos com array

Cara como faço para imprimir a maior idade, fiz um metodo mais não estou conseguindo usar so consigo imprimir o primeiro resultado?

package Prova;
import java.util.*;
public class Questao1 {


	public 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;
    	int menor= idade;
    	
    	if(maior < idade){
    	idade=Math.max(maior, idade);
    	
    	
    	
    	}if(menor>idade){
    		idade=Math.min(menor,idade);
    	}
    	
    imprimeDados(maior);
    
    }
    public static void imprimeDados(int maior){
    	System.out.println("A maior idade é: " + maior);
    
    	
    	
    }
    
    
}

Opa amigo,

Não sei bem ao certo, mas tente fazer estas alterações:

package Prova;
import java.util.*;
public class Questao1 {


	public 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);
    }//fim dometodo recebeDados
    
    public static void maiorIdade(int idade){//Este método recebe um arrayList de inteiros e não um valor inteiro
    	int maior=idade[0];
    	int menor= idade[0];
    
         for(int i = 0; i <idade.length; ++i){
    	if(idade > maior){
    	   int aux = maior;
                   maior = idade;
    	   idade = aux;
    	}
    	
    	if(idade < menor){
    	   int temp = menor;
                   menor = idade;
                   idade = temp;
    	}	
         }

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

Agora quanto a metódo estático Math eu não sei dizer se está correto, nunca o usei em java!

Tente estas alterações! Espero poder ter ajudado!

[quote=Danielrricci]Opa amigo,

Não sei bem ao certo, mas tente fazer estas alterações:

package Prova;
import java.util.*;
public class Questao1 {


	public 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);
    }//fim dometodo recebeDados
    
    public static void maiorIdade(int idade){//Este método recebe um arrayList de inteiros e não um valor inteiro
    	int maior=idade[0];
    	int menor= idade[0];
    
         for(int i = 0; i <idade.length; ++i){
    	if(idade > maior){
    	   int aux = maior;
                   maior = idade;
    	   idade = aux;
    	}
    	
    	if(idade < menor){
    	   int temp = menor;
                   menor = idade;
                   idade = temp;
    	}	
         }

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

Agora quanto a metódo estático Math eu não sei dizer se está correto, nunca o usei em java!

continua dando o mesmo´problema

Tente estas alterações! Espero poder ter ajudado![/quote]

continua o mesmo problema

E qual é o problema? Está lançando exceção? Qual?

se eu imprimo assim so sai o resultado da primaira idade mesmo sendo a menor ou maior .

maiorIdade(idade[0]);

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

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

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

	}else{
		idade=Math.min(menor, idade);
	}
	
imprimeDados(maior,menor);

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

	
	
}[/code]

e assim so sai o segunda idade digitada.

maiorIdade(idade[1]);

e eu quero que saia a menor idade e a maior idade

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

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

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

	}else{
		idade=Math.min(menor, idade);
	}
	
imprimeDados(maior,menor);

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

	
	
}[/code]

Mas claro voce está passando maiorIdade( idade[0]) vai imprimir apenas a primeira idade, se passar maiorIdade( idade[1]) irá imprimir o segundo indice do array. Voce tem que passar o array inteiro tipo tanto na chamada do método “maiorIdade(idade)” quanto no método chamado public static void maiorIdade(int idade[]){

Tenta ai

Mas claro voce está passando maiorIdade( idade[0]) irá imprimir apenas o primeiro indice do array idade[0], ou seja, a primeira idade. Se passar maiorIdade( idade[1]) irá imprimir o segundo indice do array idade[1], ou seja, a segunda idade. Voce deve passar o array inteiro tipo tanto na chamada do método “maiorIdade(idade[])” quanto no método chamado “public static void maiorIdade(int idade[]){”

Tenta ai

[quote=Danielrricci]Mas claro voce está passando maiorIdade( idade[0]) irá imprimir apenas o primeiro indice do array idade[0], ou seja, a primeira idade. Se passar maiorIdade( idade[1]) irá imprimir o segundo indice do array idade[1], ou seja, a segunda idade. Voce deve passar o array inteiro tipo tanto na chamada do método “maiorIdade(idade[])” quanto no método chamado “public static void maiorIdade(int idade[]){”

Tenta ai[/quote]

se eu deixar vazio da erro.

tenta ao invéz de fazer a chamada imprimeDados(maior,menor), apenas colocar dentro do método public static void maiorIdade(int idade){ o System.out.println("A maior idade é: " + maior); para ver se o erro está na passagem de parâmetro! Se imprimir é pq o parâmetro recebido pelo método maiorIdade(int idade[]) está incorreto.

não deu.

poisé o seu maior erro esta em prgar apenas o indice 0 do array. Comentei isso no seu topico mais recente! 2 topicos p falar da mesma duvida? rsrsrs…




www.godevelopgames.wordpress.com

para quem esta começando na programação de jogos