展开式求和。输入一个实数x,计算并输出下式的值,直到最后一项的绝对值小于0.00001 (保留4 位小数)。要求定义和调用函数fact(n)计算n 的阶乘,可以调用pow()函数求幂。试编写相应程序。

展开式求和。输入一个实数x,计算并输出下式的值,直到最后一项的绝对值小于0.00001 (保留4 位小数)。要求定义和调用函数fact(n)计算n 的阶乘,可以调用pow()函数求幂。试编写相应程序。

问题描述:

#include<stdio.h>
#include<math.h> 
int factorial (int n); 
int main(void){
    double x;
    double s=0.0;
    double sum=0.0;
    int n=1;
    sancf("%lf",&x);
    while(fabs(sum)>=0.00001){

       s=1+pow(x,n)/factorial(n);
       sum=sum+s;
       n++}
       printf("%.4lf",&s);
       return 0;
}
int factorial(int n)
 {
    int i,fact=1;

    for(i=1;i<=n;i++)
        fact=fact*i;

    return fact;
 }

s =1+ x+x*x/2!+x*x*x/3!+x*x*x*x/4!+……

sancf("%lf",&x);
->
scanf("%lf",&x);

#include <stdio.h>
#include <math.h>

double fact(double a);

int main() {
double x, n = 2, s = 0;
double a = 2, d;
int cnt = 0;
scanf("%lf", &x);
while (pow(x, a) / fact(n) > 0.00001) {
d = pow(x, a) / fact(n);
if (cnt < 1) {
s = s + 1 + x + d;
}
s += d;
cnt++;
n++;
a++;
}
printf("%.4f\n", s );
return 0;
}

double fact(double a) {
double b = 1, c = 1;
while (b <= a) {
c = c * b;
b++;
}
return c;
}

这个不对吧