【问题描述】
给定一个精度值e,用下列公式计算sin(x)的近似值,要求前后两次迭代之差的绝对值小于e,给出相应的最小迭代次数n和最后一次计算的sin(x)值。
sin x = x - x3/3! + x5/5! - x7/7! + … + (-1)n-1x2n-1/(2n-1)!
其中x为弧度,n为正整数。
【输入形式】
从控制台输入x( (0
#include <stdio.h>
#include <math.h>
int main()
{
double x, y, t,tmp,n;
int i=2, m = 1,flag=1;
scanf("%lf%lf", &x, &n);
y = x;
t = x;
tmp = x;
while (flag)
{
t *= x * x;
m *= 2 * (i - 1)*(2 * i - 1);
tmp = t / m;
if(tmp<n)flag=0;
if (i % 2 == 0) {
tmp *= -1;
}
y += tmp;
i++;
}
printf("%d %.9lf\n", i-1, y);
system("pause");
return 0;
}
![这里写图片描述](https://img-blog.csdn.net/20180611003524897?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3prZDc1OA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)