Cara como faço para imprimir a maior idade, fiz um metodo mais não estou conseguindo usar so consigo imprimir o primeiro resultado?
packageProva;importjava.util.*;publicclassQuestao1{publicstaticvoidmain(String[]args){recebeDados();}publicstaticvoidrecebeDados(){Scannersc=newScanner(System.in);intidade[]=newint[2];Stringsexo[]=newString[2];for(inti=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 formaiorIdade(idade[0]);}//fim dometodo recebeDadospublicstaticvoidmaiorIdade(intidade){intmaior=idade;intmenor=idade;if(maior<idade){idade=Math.max(maior,idade);}if(menor>idade){idade=Math.min(menor,idade);}imprimeDados(maior);}publicstaticvoidimprimeDados(intmaior){System.out.println("A maior idade é: "+maior);}}
Não sei bem ao certo, mas tente fazer estas alterações:
packageProva;importjava.util.*;publicclassQuestao1{publicstaticvoidmain(String[]args){recebeDados();}publicstaticvoidrecebeDados(){Scannersc=newScanner(System.in);intidade[]=newint[2];Stringsexo[]=newString[2];for(inti=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 formaiorIdade(idade);}//fim dometodo recebeDadospublicstaticvoidmaiorIdade(intidade){//Este método recebe um arrayList de inteiros e não um valor inteirointmaior=idade[0];intmenor=idade[0];for(inti=0;i<idade.length;++i){if(idade>maior){intaux=maior;maior=idade;idade=aux;}if(idade<menor){inttemp=menor;menor=idade;idade=temp;}}imprimeDados(maior,menor);}publicstaticvoidimprimeDados(intmaior,intmenor){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!
P
pauser2200
Danielrricci:
Opa amigo,
Não sei bem ao certo, mas tente fazer estas alterações:
packageProva;importjava.util.*;publicclassQuestao1{publicstaticvoidmain(String[]args){recebeDados();}publicstaticvoidrecebeDados(){Scannersc=newScanner(System.in);intidade[]=newint[2];Stringsexo[]=newString[2];for(inti=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 formaiorIdade(idade);}//fim dometodo recebeDadospublicstaticvoidmaiorIdade(intidade){//Este método recebe um arrayList de inteiros e não um valor inteirointmaior=idade[0];intmenor=idade[0];for(inti=0;i<idade.length;++i){if(idade>maior){intaux=maior;maior=idade;idade=aux;}if(idade<menor){inttemp=menor;menor=idade;idade=temp;}}imprimeDados(maior,menor);}publicstaticvoidimprimeDados(intmaior,intmenor){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!
continua o mesmo problema
Danielrricci
E qual é o problema? Está lançando exceção? Qual?
P
pauser2200
Danielrricci:
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]);
maiorIdade(idade[0]);}//fim dometodo recebeDadospublicstaticvoidmaiorIdade(intidade){intmaior=idade;intmenor=idade;if(maior<idade){idade=Math.max(maior,idade);}else{idade=Math.min(menor,idade);}imprimeDados(maior,menor);}publicstaticvoidimprimeDados(intmaior,intmenor){System.out.println("A maior idade é: "+maior);System.out.println("A menor idade é "+menor);}
e assim so sai o segunda idade digitada.
maiorIdade(idade[1]);
e eu quero que saia a menor idade e a maior idade
maiorIdade(idade[1]);}//fim dometodo recebeDadospublicstaticvoidmaiorIdade(intidade){intmaior=idade;intmenor=idade;if(maior<idade){idade=Math.max(maior,idade);}else{idade=Math.min(menor,idade);}imprimeDados(maior,menor);}publicstaticvoidimprimeDados(intmaior,intmenor){System.out.println("A maior idade é: "+maior);System.out.println("A menor idade é "+menor);}
Danielrricci
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
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
P
pauser2200
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
se eu deixar vazio da erro.
Danielrricci
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.
P
pauser2200
não deu.
J
jhooon
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…