Questão 29: retiraNeg
Voltar
Defina uma função int retiraNeg (int v [], int N)
que retira os números negativos de um vetor com N
inteiros. A função deve retornar o número de elementos que não foram retirados.
Exemplo
> int v[5] = {3, -1, 6, 0, -2};
> retiraNeg(v, 5)
(int) 3
> v
(int [5]) {3, 6, 0}
Resolução
void tail(int *v, int N) {
int i;
for(i = 1; i < N; i++)
v[i-1] = v[i];
}
int retiraNeg (int v[], int N) {
int i = 0;
while(i < N) {
if(v[i] < 0) {
tail(v+i,N-i);
N--;
}
else i++;
}
return N;
}