C primer plus (第六版)第六章 编程练习第12题

题目:

12.考虑下面两个无限序列:

1.0 + 1.0/2.0 + 1.0/3.0 + 1.0/4.0 + ...

1.0 - 1.0/2.0 + 1.0/3.0 - 1.0/4.0 + ...

编写一个程序计算这两个无限序列的总和,直到到达某次数。提示:奇数个-1相乘得-1,偶数个-1相乘得1。让用户交互地输入指定的次数,当用户输入0或负值时结束输入。查看运行100项、1000项、10000项后的总和,是否发现每个序列都收敛于某值?

#include 
int main()
{
    int i;
    int cycles;
    double sum1, sum2, sum3;

    printf("Please input limit cycles:\n");
    scanf("%d",&cycles);
    while (cycles > 0)
    {
        for ( i = 1, sum1 = 0; i <= cycles; i++)
            sum1 = sum1 + ((double)1.0/i);

        printf("%lf\n",sum1);

        for (i = 1, sum2 = 0; i <= cycles; i+=2)
            sum2 = sum2 + (double)1.0/i;
        for (i = 2, sum3 = 0; i <= cycles; i+=2)
            sum3 = sum3 - (double)1.0/i;   

        printf("%lf\n",sum2+sum3); 

    printf("Please input limit cycles:\n");
    scanf("%d",&cycles);
    }
    printf("end\n");
    return 0;
    
}

你可能感兴趣的:(C语言学习,c语言,开发语言)