#include <stdio.h>
#include <math.h>
//声明阶层函数
double fact(int x);
int main(void) {
/**
展开式求和:输入 1 个实数 x,计算并输出下式的值,直到最后一项的绝对 值小于 0.00001,
计算结果保留 2 位小数。要求定义和调用函数 fact(n)计算 n 的阶乘,可以调用 pow( )函数求幂。
试编写相应程序。 s=x+x2/2!+x3/3!+x4/4!+…
*/
//输入一个实数
double x;
scanf("%lf",&x);
//定义项、和、自变量
double s,item = 1.0;
int i = 1;
while(fabs(item) >= 1e-5){
//调用pow()和fact()求每项的值
item = pow(x,i)/fact(i);
s+=item;
i++;
}
//打印和
printf("s=%.2lf",s);
return 0;
}
//求阶乘
double fact(int n){
int i;
double result = 1;
for(i = 1; i <= n; i++){
result=result*i;
}
return result;
}
你题目的解答代码如下:
#include <stdio.h>
#include <math.h>
long long fact(int n)
{
if (n==1)
return (long long)1;
return n*fact(n-1);
}
int main()
{
int n,i=1;
double x,s=1,t;
scanf("%lf",&x);
do
{
t = pow(x,i*1.0) / fact(i);
s += t;
i++;
} while (fabs(t)>=0.00001);
printf("s=%.2lf",s);
return 0;
}
如有帮助,望采纳!谢谢!