c语言设计,实在是懵了。

img


c语言设计,萌新已经懵了,求大佬解答


和这个就差一点


#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;
}

如有帮助,望采纳!谢谢!

img