练习4-3 求给定精度的简单交错序列部分和

/*
    计算序列部分和 1 - 1/4 + 1/7 - 1/10 + ... 直到最后一项的绝对值不大于给定精度eps。

    输入格式:
    输入在一行中给出一个正实数eps。

    输出格式:
    在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后六位。题目保证计算结果不超过双精度范围。
*/

#include<stdio.h>
#include<math.h>

int main(void)
{
    double eps;
    double flag, denominator, item, sum;

    scanf_s("%lf", &eps);
    flag = 1;
    denominator = 1;
    
    /*
        item的初值比eps大
        可以保证进入循环程序
        可以满足eps比1大的情况下,sum能加到第一项
    */
    item = eps + 1;
    sum = 0;
    while (fabs(item) > eps)
    {
        /*不满足while判断表达式后的第一项,此时的item为下一项*/
        item = flag / denominator;
        sum = sum + item;
        flag = -flag;
        denominator = denominator + 3;        
    }
    
    printf("sum = %.6f
", sum);

    return 0;
}

原文地址:https://www.cnblogs.com/2018jason/p/11849335.html