Mam do napisania funkcję, która w sposób rekurencyjny zlicza elementy dodatnie tablicy. Napisałem kod, który działa poprawnie, ale nie wiem czy jest to dobre rozwiązanie. Bardzo bym prosił o sprawdzenie, jakieś wskazówki. A najchętniej to bym wysłuchał jakiś rad na temat tego, jak można sobie ułatwić rozwiązywanie zadań rekurencyjnych. Wiem, że "żeby zrozumieć rekurencję, trzeba najpierw zrozumieć rekurencję", ale może można sobie jakoś życie ułatwić. :)
#include <stdio.h>
int dodf(int * tab, int n, int a)
{
if(n > 0 && *tab > 0) dodf(++tab, n-1, ++a);
else if(n>0) dodf(++tab, n-1, a);
else return a;
}
int main(void)
{
int tab[5] = {-5, -4, 3, 7, 9};
int x = 0, a = 0;
x = dodf(tab, 5, a);
printf("%d\n", x);
return 0;
}