C语言编程:计算S=-x+2x^2/3!-4x^4/5!+6x^6/7!-.,x属于[1,2],要求计算精度为第n项的值小于10^-5
来源:学生作业帮助网 编辑:作业帮 时间:2024/10/06 13:55:37
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项的值小于10^-5
C语言编程:计算S=-x+2x^2/3!-4x^4/5!+6x^6/7!-.,x属于[1,2],要求计算精度为第n项的值小于10^-5
#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);
}