1-1/2+1/3+……精度损失

#include<stdio.h>
int main()
{    
    int sign;
    double i,sum,term;
    i=2;
    sum=1.0;
    sign=-1;
    while(i<=100)
    {
    
        term=sign/i;
        sum=sum+term;
        i++;
        sign=-sign;
    }
    printf("%lf",sum);
    return 0;

}

这个输出结果是错的  因为 term=sign/i    int除int得到的还是int  整个式子就变成1-1+1……

把i改为double就能解决

上一篇:PTA函数


下一篇:力扣 - 剑指 Offer 67. 把字符串转换成整数