计算1-1/2+1/3-1/4+...+(-1)/100结果错误

问题遇到的现象和发生背景 结果不对
用代码块功能插入代码,请勿粘贴截图
#include
int main()
{
    int  sign;
    double sum, d,i;
    sign = 1;
    sum = 0;
    for (i = 0; i <= 99; i++);
    {
        d = sign *1/ (i + 1);
        sum += d;
        sign = -sign;
    }
    printf("%lf\n", sum);
    return 0;
}

运行结果及报错内容 0.009901
我的解答思路和尝试过的方法
我想要达到的结果 计算出正确结果
for (i = 0; i <= 99; i++);//分号删掉

d = sign *1.0/ (i + 1);//1改为1.0

主要问题在第8行,末尾多了 ';' 分号,修改如下,供参考:

#include<stdio.h>
int main()
{
    int   sign;
    double sum, d, i;
    sign = 1;
    sum = 0;
    for (i = 0; i <= 99; i++) //; 这行多了';'分号 
    {
        d = sign * 1.0 / (i + 1); //sign *1/ (i + 1);修改
        sum += d;
        sign = -sign;
    }
    printf("%lf\n", sum);
    return 0;
}

sign*1.0,浮点数整除,sign*1的话整数除整数会取整。
有帮助的话采纳一下哦!


#include<stdio.h>
int main()
{
int i=0;float sub=0;
for(i=1;i<=100;i++)//循环100次,也可写成i<101
{
 if (i%2==0)//当i为偶数时,将它的负数分之一加起来
 sub-=1.0/i;
 else//当i不是偶数是,将它的分之一加起来
 sub+=1.0/i;
}
printf("sub=%f\n",sub);
}