Olá, Fábio, espero que não esteja respondendo muito tarde.
Se não me enganei, a sua função deve ler o vetor, ver qual dos valores se repete mais vezes e retornar esse valor, certo?
Primeiramente, vou apontar os erros da sua função. Ao fazer o primeiro return, você fez com que a sua função comparasse apenas o primeiro valor com o resto do vetor, ao contrário do que deveria fazer, comparar cada item com o vetor inteiro. Segundo, ele retorna quantas vezes esse item se repete, e não o item em si (não sei se isso é um erro ou não). Terceiro, após saber quantas vezes o item se repete, você deve saber se ele é o que se repete mais, o que seu código não faz. Então eu mastiguei suas dúvidas e refiz seu código. :oops:
[code] public int comparaModa(int[] vet1){
int maiorFrequencia = -1, itemMaisFrequente=-1;
int atual=0;
for(int i=0;i<vet1.length;i++)
{
for(int j=0;j<vet1.length;j++)
{
if (vet1[i]==vet1[j])
atual++;
}
if (maiorFrequencia < atual) {
itemMaisFrequente = i;
maiorFrequencia = atual;
}
atual=0;
}
return itemMaisFrequente;
}[/code]
Então, como você pode ver, o primeiro for pega o primeiro item, compara com todos os valores (incluindo ele mesmo), e se encontrar algum igual, ele incrementa atual, que é a quantidade de vezes que ele se repete. Após testar com todos, ele testa se essa frequência foi maior que a anterior, e se for, ele seta o índice do item atual para itemMaisFrequente (poderia ser o valor direto também) e a frequência para maiorFrequencia. Depois, ele seta atual para zero novamente e passa a uma nova interação.
Ao final dos for’s, você terá o itemMaisFrequente e a maiorFrequencia, com que ele se repete. Retornei o itemMaisFrequente em vez de usar static x como você fez, isso cabe a você. Dessa maneira, você deve modificar o main:
public static void main(String[]args){
int[]array={4,6,8,6,9};
Exercicio4 a = new Exercicio4();
int itemMaisFrequente = a.comparaModa(array);
System.out.println("O valor mais frequente é: "+array[itemMaisFrequente]);
}
Um problema desse código é que ele pega o primeiro valor mais frequente, e caso encontre outro com a mesma frequência, ele simplesmente ignora. Mas isso deixa o código um pouco mais complicado e não sei se você precisa disso.
Me avisa se funcionar =)
[]'s
//TheMadJava