c语言的:输入1个实数x,计算并输出下式的值,直到最后一项小于10-5...
发布网友
发布时间:2024-02-12 05:21
我来回答
共1个回答
热心网友
时间:2024-08-18 23:26
我怀疑这道题的样例有问题,也可能是我的编译器上设定的精度不够高。
#include <stdio.h>
long long fact(int n)
{
int i;
long long res=1;
for(i=2;i<=n;i++)
res *= i;
return res;
}
double mypow(double x,int a)
{
int i;
double res=1.0;
for(i=0;i<a;i++)
res *= x;
return res;
}
int main()
{
int i;
double x,t=1,s=0; //t为每一项的值,设置初始值为1是为了第一次能进入循环
scanf("%lf",&x);
for(i=0;t >= 0.00001;i+=2)
{
t = mypow(x,i) / fact(i);
s += t;
}
printf("%lf\n",s);
return 0;
}
我的结果是3.762195 ,我还把每一个项都输出验证了一下,发现并没有问题。