发布时间:2019-07-29 16:11:56
#include<stdio.h>
#include<math.h>
int main ()
{
float temp,x,sumq;
int n;
scanf("%f",&x);
temp=x;
sumq=x;
for(n=1; fabs(temp)>=1e-6; n++)
{
temp =temp*((-1)*pow(x,2)/((2*n+1)*(2*n)));
sumq+=temp;
}
printf ("%f\n",sumq);
return 0;
}
我这个结果,输入x=2的时候0.909297,输入3.14时,0.001593;总是最后一位错了,我觉得逻辑没问题,但是将程序中精度改为1e-4就满足题目的要求
感觉应该是temp的地方错了,因为没有设置一个中间变量,满意请采纳