[c] rekurencja

0

Witam, pomoże ktoś z zadaniem ze sprawka do algorytmów? Męczę się już dość długo i pomysły się skończyły, coś z tym wzorem mi nie działa tab[i+1]=tab[i]+(i/(i+1));
[img]http://i.imgur.com/S9nGwBJ.jpg[/img]

kod:
‪#‎include‬ <stdio.h>
#include <stdlib.h>
‪#‎define‬ n 5
double ciag(double tab[n], int i);
int main()
{
int i;
double tab[n];
i=0;
printf("ciag liczb od 0 do %d to: \n", n);
printf("%f \n", ciag(tab, i));
return 0;
}
double ciag(double tab[n], int i)
{
tab[0]=1;
tab[i+1]=tab[i]+(i/(i+1));
printf("tab[%d] = ", i);
if(n<0)
return 0;
if(i==n)
return tab[i];
printf("%f", tab[i]);
printf("\n");
system("PAUSE");
return ciag(tab, i+1);
}

przerobiłem też kod na taki bez tablic, ale to samo :

#include <stdio.h>
#include <stdlib.h>

double ciag(int N);

int main()
{
printf("ciag liczb od 0 do %d to: \n", 5);
printf("%f \n", ciag(5));
return 0;
}

double ciag(int N)
{
if(N==0)
{
double wynik=1;
printf("x_%d=%f\n",N,wynik);
return wynik;
}
if(N>0)
{
double w, wynik;
w = ciag(N-1);
wynik = w + (N-1)/N;
printf("x_%d=%f\n",N,wynik);
return wynik;
}
}

Z góry dzięki!

1

Po jedynkach brakuje kropek:

  1. i/(i+1) -> i/(i+1.)
  2. (N-1)/N -> (N-1.)/N
0

dzieki

1 użytkowników online, w tym zalogowanych: 0, gości: 1