#include <stdio.h>

void imprimir_vector(int l, int v[]) {
	int i;

	for (i=0; i<l; i++) {
		printf("%2d ", v[i]);
	}
	printf("\n");
}

void eliminar_elemento(int *l, int v[], int pos) {
	int i;

	for (i=pos; i<*l-1; i++) {
		v[i] = v[i+1];
	}
	(*l)--;
	// *l = *l-1; // no necesita parentesis
}

void eliminar_negatius_ko(int *l, int v[]) {
	int i;

	for (i=0; i<*l; i++) {
		if (v[i] < 0) {
			eliminar_elemento(l, v, i);
		}
	}
}

void eliminar_negatius_ok(int *l, int v[]) {
	int i;

	for (i=0; i<*l; i++) {
		if (v[i] < 0) {
			eliminar_elemento(l, v, i);
			i--;
		}
	}
}

int main() {
	int v1[] = { 0, 1,-1,-2,-3, 2,-4,-5, 3}, l1 = 9;
	int v2[] = { 0, 1,-1,-2,-3, 2,-4,-5, 3}, l2 = 9;

	imprimir_vector(l1, v1);
	eliminar_negatius_ko(&l1, v1);
	imprimir_vector(l1, v1);

	imprimir_vector(l2, v2);
	eliminar_negatius_ok(&l2, v2);
	imprimir_vector(l2, v2);
}

/*
$ ./eliminar_varios_de_vector 
 0  1 -1 -2 -3  2 -4 -5  3 
 0  1 -2  2 -5  3 
 0  1 -1 -2 -3  2 -4 -5  3 
 0  1  2  3
$ 
 */

