求公式sin(x)=x-x3/3!+x5/5!-x7/7!+x9/9!- ...
,要求精度不低于1e-5
下面是我的代码
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main() {
double x, sum = 0, y=0,sum1, i=1,t,j,u;
scanf("%lf", &x);
do {
u = pow(-1, i + 1);
t = pow(x, 2*i - 1);
for (j = 1,sum1=1; j <= 2 * i - 1; j++) {
sum1 = sum1*j;
}
y = u*t / sum1;
sum = sum + y;
i++;
} while (fabs(y) >= 1e-5);
printf("%.5lf", sum);
system("pause");
return 0;
}
那么问题出现了。。。有时候期望输出是0.99958 可我的程序输出是0.99957 为什么会差0.00001啊 难道是四舍五入的问题吗?如何修改?如果是4舍五入问题那么sum加上0.000005后再%.5lf
其他数据又不对了。。恳请赐教。。感谢!
请说清楚你的运行环境以及什么时候“预期输出0.99958”