题目:展开式求和。输入一个实数 x,计算并输出下式的和,直到最后一项
的绝对值小于 0.000 01 ,计算结果保留 4 位小数。要求定义和调用函数 fact(n)
计算 n 的阶乘,可以调用 pow() 函数求幂。试编写相应程序。
𝑠 = 1 +x+/2!+/3!+/4!+...
解析:
1.要求循环的最后一项绝对值小于0.00001,那么循环的范围我们就知道了
2.阶乘部分我们使用函数计算
3.主函数计算这个和
代码:
#include<stdio.h>
#include<math.h>
double fact(int n);
int main(){
int n;
double s,x,eps,item;
printf("input x:");
scanf("%lf",&x);
s=0;
item=1;
eps=0.00001;
n=1;
while(fabs(item)>=eps){
s+=item;
item=pow(x,n)/fact(n);
n++;
}
//循环结束后,最后一项没有加
s = s+item;
printf("s=%.4lf\n",s);
return 0;
}
//计算阶乘的值
double fact(int n){
int i;
double result=1;
for(i=1;i<=n;i++){
result *=i;
}
return result;
}