Olá galera. Estou com dificuldades de tentar encontrar uma lógica para descobrir os valores diferentes de um vetor, eu primeiramente ordenar os vetores, mas posteriormente não consigo de maneira alguma encontrar uma logica para comparar os números e fazer a contagem dos diferentes. segue a questão e depois meu algoritmo.
QUESTÃO
O dono do zoológico quer a lista de todas as especies de animais que existem no zoológico. Para isso ele te deu uma lista de todos
os animais. Sabendo que o zoológico suporta no máximo 100 animais, ele quer que você faça um programa em C que retorne a quantidade de espécies diferentes.
Considere que um número representa uma espécie.
Não use uma função de ordenar pronta.
Entrada:
linha 1: um número com a quantidade de elementos do vetor (1 até 100)
linha 2: o vetor de inteiros que representam os animais.
Saída: a quantidade de espécies
Exemplos:
>>
3
1 1 2
<<
2
ALGORITMO
#include <stdio.h>
/*O dono do zoológico quer a lista de todas as especies de animais que existem no zoológico. Para isso ele te deu uma lista de todos
os animais. Sabendo que o zoológico suporta no máximo 100 animais, ele quer que você faça um programa em C que retorne a quantidade de
*espécies diferentes.
*- Considere que um número representa uma espécie.*/
void select_sort(int animais[],int tam)
{
int i,j;
for (i=0;i<tam-1;i++)
{
int menor=i,aux;
for(j=i+1;j<tam;j++)
{
if(animais[j]<animais[i])
{
menor=j;
}
if(i!=menor)
{
aux=animais[i];
animais[i]=animais[menor];
animais[menor]=aux;
}
}
}
}
int main ()
{
int animais[100],tam,i,j,diferentes=1;
//limitando o maximo e minimo do vetor
do
{
printf("Qual a quantidade de animais que voce ira digitar (entre 1 e 100) ? --> ");
scanf("%d",&tam);
}
while(tam<1 || tam>100 );
//recebendo valores do vator
for(i=0;i<tam;i++)
{
printf("Digite o numero do animal --> ");
scanf("%d",&animais[i]);
}
//função que deixa os valores ordenados
select_sort(animais,tam);
//testando quantos valores sao diferentes
for(i=0;i<(tam-1);i++)
{
for(j=1;j<tam;j++)
{
if (animais[i]!=animais[j])
{
diferentes++;
}
}
}
printf("%d",diferentes);
return 0;
}