Questão 34: elimRepOrd
Voltar
Defina uma função int elimRepOrd (int v[], int n)
que recebe um vetor v
com n
inteiros ordenado por ordem crescente e elimina as repetições. A função deverá retornar o número de elementos do vetor resultante.
Exemplo
> int v[8] = {1, 2, 2, 3, 4, 4, 4, 5};
> elimRepOrd(v, 8)
(int) 5
> v
(int [8]) {1, 2, 3, 4, 5}
Resolução
void tail(int *v, int N) {
int i;
for(i = 1; i < N; i++)
v[i-1] = v[i];
}
int elimRepOrd (int v[], int n) {
int i = 1;
while(i < n) {
if(v[i] == v[i-1]) { tail(v+i,n-i); n--; }
else i++;
}
return i;
}