El primer ejercicio lo intente simulando un pase por referencia,
Código C:
Ver original#include <stdio.h>
/* más codigo si hace falta */
void contarNegativos(int arr[], int n, int *cantidad)
{
if(n > 0)
{
if(arr[n-1] < 0)
*cantidad = *cantidad + 1;
contarNegativos(arr, n-1, cantidad);
}
}
int main (void)
{
int arr[] = {-1, -4, -3, 2, 1, 8, 0, 1};
int n = sizeof arr / sizeof *arr;
int cantidad = 0;
/* calcular cantidad de negativos */
contarNegativos(arr, n, &cantidad);
/* mostrar cantidad de negativos */
printf("\ntotal: %d\n", cantidad
);
return 0;
}
solucion 2:
http://ideone.com/MZsKX1