Il problema dovrebbe essere relativo ad un utilizzo di interi dove invece bisognerebbe utilizzare un valore a virgola mobile.
Hai due possibilità:
- utilizzi un debugger e vedi un passo alla volta cosa succede
- inserisci delle printf() nei punti chiavi
#include <stdio.h>
#include <math.h>
main()
{
int n;
double x;
double tmp;
n=0;
x=1/2;
printf("valore di partenza %f\n", x);
while(n<100){
tmp=(2*n+1)/(2*n+2);
printf("tmp =%f\n", x);
x=x/(n+1)+tmp;
printf("x =%f\n", x);
n=n+1;
}
}