Encontrar um valor que se repete em uma lista

Ola. Gostaria de saber que tem alguma função pronta para contar o numero de vezes de  um determinado valor.

Por exemplo : eu tenho uma lista zerada de 10 elementos, tipo lista=[0,0,0,0,0,0,0,0,0,0]

Se eu colocar no primeiro elemento da lista o 1, eu gostaria que me retornasse que o 1 aparece 1 vez na lista : lista=[1,0,0,0,0,0,0,0,0,0]

Se eu colocar outro um em outra posição gostaria de retornar que foram encontradas 2 ocorrencias do 1 : lista=[1,0,0,0,1,0,0,0,5,0], mesmo tendo um 5 na lista, porque o 1 é o que mais aparece.

Em resumo gostaria de saber que o 1 é o numero que mais aparece na lista, com exceção do 0, mesmo tendo outros numeros nela.

Sei que da para fazer com for para ir andando no elementos da lista e comparando e contando, mas pelo que me lembro o C tem uma função que conta o numero de ocorrencias de um numero em uma lista, não lembro qual é ela, algume sabe ?

Pode ser que tambem que tenha uma função que diga qual é o numero que tem mais ocorrencias em uma lista.

Alguem sabe ?

Ou sei la, pode-se fazer isso em poucas linhas de codigo, de forma bem rapida ?

Valeu,

Jota

Exibições: 253

Responder esta

Respostas a este tópico

Pelo visto ninguem sabe ou não existe a tal função...

Ja ajudaria se me disserem qual é a função do c padrao que retorna o numero de ocorrencias de um numero em uma lista e acho que consigo implementar o resto, sei que existe, mas não lembro do nome e não consigo achar ela.

Tks,

Jota

Obrigado pela ajuda.

Mas depois me dei conta que não era em C que tinha um comando pronto desses, no C, tem fazer um for para ir andando em toda lista e comparando o valor da lista[indice]=valor pretendido e se for igual, retornar o indice para saber a posição que se encontra o valor pretendido na lista.

Não existe uma função direta para isso...

Abraços,

Jota

Na Biblioteca Juriti do microcontrolador ZR16 existe uma função chamada Item_de_memoria()

que se segue:

int Item_de_Memoria(unsigned char t_item)
{
unsigned char pmem,tipo_m,cont_m;
cont_m = 0;
for (pmem = 0;pmem<255;pmem++)
{
tipo_m = ee_lista[pmem];
if (tipo_m==t_item){cont_m++;}
}
return(cont_m);
}

//lembre-se que t_item é o dado pesquisado.Essa função retorna quantidades de ocorrencias de um item em ee_lista[]

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço