Ir para o conteúdo
pr0zin

array de inteiros em java(contar nums diferentes)

Mensagens Recomendadas

pr0zin

Boas malta, o meu problema está no facto de eu qerer, num array de inteiros ORDENADO! quando 2 valores sao diferentes, eu qeria incrementar um contador:

static int Analisa_flag0(int vetor[])
{
 int conta=1;
 int i,j,aux,a=0;
 for ( i = 0; i < vetor.length; i++ )
   for ( j = i; j < vetor.length; j++ )
     if ( vetor[ i ] > vetor[ j ] ) { // inverte v[i] e v[j]
       int k = vetor[ i ];
       vetor[ i ] = vetor[ j ];
       vetor[ j ] = k;
     }
 for(i=0; i<vetor.length; i++) {
   if(vetor[i]!=vetor[i+1])
     conta++;
 }
 return conta;
}

já fiz print do vetor apos ordenaçao e ele de facto ficou bem ordenado, o meu problema reside no facto de quando faço

for(i=0; i<vetor.length; i++) {
 if(vetor[i]!=vetor[i+1])
   conta++;
}

isto nao funciona... podem me ajudar?

Editado por Rui Carlos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pr0zin

como me recomendas a fazer?

do genero eu tenho o vetor[10,10,11,12,13]

e o meu objectivo é contar os casos diferentes, neste caso 4

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
AJBM

Contares quantos vezes se repete um dado elemento, e subtrair ao tamanho do array.

int vetor[] = {1,1, 3, 2, 4, 6, 1, 7, 8, 9, 2, 3};

o 1 repete se: 2 vezes

o 2=1

o 3=1

2+1+1=4

12-4=8

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
brunoais

@pr0zin

Esse título do tópico não é apropriado tendo em conta o assunto.

Ele viola a regra 2.5:

O título deve descrever a dúvida do utilizador e nunca conter frases como "Please help meeeee..." ou "duvida urgentíssima". Em caso de incumprimento o staff pode editar o tópico, ou solicitar ao autor que o edite.

Melhora-o, sff. Se precisares de ajuda, envia-me PM.

  • Voto 1

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pr0zin

podes me explicar como? é qe estou mesmo embarrado nesta flag :|

consegui amigo!!!


for(i=0; i<vetor.length; i++) {
if(i+1==vetor.length)
return conta;
if(vetor[i]!=vetor[i+1])
conta++;
}
return conta;
}

adicionei esse if e resolvi o problema!

abraço

edit3: o meu problema estava no facto de quando eu acedia ao vetor[tamanho], e passava o limite do vetor! xD

podem fechar!

Editado por pr0zin

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
AJBM

quantos elementos diferentes existem neste array, int vetor[] = {1, 1, 3, 2, 4, 6, 1, 7, 8, 9, 2, 3};

1,2,3,4,6,7,8,9 existem 8 algarismos diferentes certo?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

ÃJBM a melhor maneira de fazer isso, é com 2 ciclos for? desculpa a minha chatisse xD

Sim

não ... a um array ordenado, é possível contabilizar a quantidade de números diferentes somente com um ciclo

int[] lista;

// .. ordernação

int ndiff = 0;
for (int i = 1; i < lista.length; i++)
{
 if (lista[i] != lista[i - 1])
   ndiff++;
}

Editado por HappyHippyHippo

IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.