作业帮 > 综合 > 作业

C语言编程:计算S=-x+2x^2/3!-4x^4/5!+6x^6/7!-.,x属于[1,2],要求计算精度为第n项的值

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/07/08 06:59:57
C语言编程:计算S=-x+2x^2/3!-4x^4/5!+6x^6/7!-.,x属于[1,2],要求计算精度为第n项的值小于10^-5
C语言编程:计算S=-x+2x^2/3!-4x^4/5!+6x^6/7!-.,x属于[1,2],要求计算精度为第n项的值
#include <stdio.h>
#include <math.h>

int main()
{
    char sign = -1;
    int n = 0, n_factorial = 1;
    double x, xn, S;

    do
    {
        printf("Please input x([1,2]): ");
        scanf("%lf", &x);
    }while(!(1 <= x && x <= 2));//限制输入范围必须[1,2]

    S = -x;
do
    {
        sign = -sign;//计算符号 
        n++;         //计算当前n,n=0,1,2,3,... 
        n_factorial = n_factorial *(2*n) * (2*n + 1); //计算阶乘(2n+1)!
        xn = (2*n)*pow(x, 2*n)/n_factorial; //计算第n项值(不包括负号)2n*x^(2n)/(2n+1)!
        S += sign * xn; // 计算S=S+符号*xn 
    }while(xn >= (1e-5));//第n项的值大于等于10^-5时,重复循环 
    printf("The result S is : %lf\n", S);
}