如何编写这个程序,求解答

img

如何编写函数里的程序,如果不用函数是不是更简单啊,有没有什么其他方法呀?

一个实现,供参考:


#include <stdio.h>


int main(void){
    
    float fun();
    //void TestFunc();
    printf("无理数e的值是:%f\n",fun());
    //TestFunc();
} 

float fun(){
    
    

    int j;  //用于计算阶乘的循环变量 
    float t = 1;    // 阶乘 
    int n=1;   // 用于计算到几的阶乘 
    float sign = 1/t;  // 每一项的值 
    float e = 0;  // 结果e 
    e+=sign;  
//    printf("t=%.2f,sign=%.2f,e=%.2f\n",t,sign,e);
    while(sign>=0.000001){  //如果每一项的值大于等于0.000001时就一直求e的值 
        
         //计算阶乘 
        for(j=1;j<=n;j++){
            t*=j;
        }
        sign = 1/t;  //每一项的值 
        e += sign;  //把每一项累加到e中,以便求e的近似值 
        //printf("t=%.2f,sign=%.2f,e=%.2f\n",t,sign,e);
        n++;    //指示下一次阶乘计算到几
        
        t=1;  //阶乘变量置1,以便开始计算下一个阶乘 
    }
    
    return e;
}

img