输入一个双精度实数x,计算并输出下式的值,直到最后一项的绝对值小于10-5(保留两位小数),s=x-x2/2!+x3/3!-x4/4!+…
说明:(1)scanf之前无需用printf给提示信息。
(2)求和结果用"%.2f"控制输出格式。
测试用例的输入及输出结果如下:
测试用例:输入 | 测试用例:输出 |
1< 回车 > | sum=0.63 |
3.5< 回车 > | sum=0.97 |
5.0 < 回车 > | sum=0.99 |
代码如下:
#include <stdio.h>
int main()
{
double x, t = 1, i = 1, sum = 0;
int sign = 1;
scanf("%lf", &x);
do {
t = t * x/i;
sum += sign*t;
sign = -sign;
++i;
} while(t >= 1e-5);
printf("sum=%.2f\n", sum);
return 0;
}
在这题中不能使用pow函数,因为pow函数是double型,会出现精度问题,使得结果有误