C语言计算题,求编程

已知S=1-1/2+1/3-1/5+1/8-1/13......,求S的值,直到某一项的绝对值小于10-7为止,结果保留4位小数。


#include <stdio.h>
 
int main()
{
    int a = 1, b = 2, c, flag = 1;
    double ans = 0.0;
    double temp = 0.0;
    ans += flag*1.0/a;
    ans += flag*(-1.0)/b;
    while(1){
        c = a+b;
        a = b;
        b = c;
        temp = flag*1.0/c;
        if(fabs(temp) < 1e-7)break;
        ans += temp;
        flag *= -1;
        //printf ("c=%d\n", c);
    }
    printf ("%.4f\n", ans);
}