为什么这个程序算不了1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值啊?

img


也没有报错,弹出后却一片空白没有结果。
请各位能不能告诉我哪里写错了,怎么修改哇。

第一个while死循环了,把b+2.0;换成b += 2.0;

float c = 1/3不行,改为float c = 1.0/3;
因为1/3是整除,结果为0,不是0.33333
还有第6行应该是b+=2.0啊,光是b+2.0毫无意义。
总之问题较多。重写:

#include <stdio.h>
int main()
{
    double sum = 0;
    int flag = 1,i;
    for(i=1;i<=100;i++)
    {
        sum += 1.0/i*flag;
        flag *= -1;
    }
    printf("%lf",sum);
}


#include <stdio.h>

int main()
{
    int i;
    double sum1 = 0, sum2 = 0, ans;
    for(i = 1; i<=100; i++)
    {
        if(i % 2 != 0)
            sum1 += 1.0 / i;
        else
            sum2 += 1.0 / i;
    }
//    printf("%f %f", sum1, sum2);
    ans = sum1 - sum2;
    printf("%f", ans);
    return 0;
}