e = 1+ x/1! + x(2)/2! + x(3)/3!......

#include 
//计算幂的函数
int mypow(int);

//计算阶乘的函数
float factorial(int);
//计算e的函数
//e = 1+ x/1! + x(2)/2! + x(3)/3!......
int calculateE(int);

int main(){
    //存储输入的数值(用来做阶乘分之一的次数)
    int x;
    //循环标志位
    char start;
    printf("\nstart?(y/n): ");
    scanf("%c", &start);
    while (start == 'y'){
        fflush(stdin);
        printf("\nenter a number: ");
        scanf("%d", &x);
        //调用calculateE 计算e的值
        calculateE(x);

        fflush(stdin);
        printf("\nstart?(y/n): ");
        scanf("%c", &start);
    }
    return 0;
}

//计算e的值
int calculateE(int b){
    //e 用来保存计算好的e值
    //result 用来保存每次计算好的值,累加给e
    float e = 1, result;
    //循环标志位,让其等于在主函数中输入的x,也就是形参b
    int i = b;
    for (i; i > 0; i--){
        //调用阶乘函数,计算阶乘分之一,保存给result
        result = mypow(i) / factorial(i);
        //让e先等于1,然后与每次计算好的阶乘分之一相加
        e = e + result;
    }    
    //打印结果
    printf("\ne= %f", e);
    return 0;
}

//计算阶乘的函数
float factorial(int a){
    //让i= 原数字-1,这样,第一次计算就能算出 n*(n-1)
    int i = a - 1;
    //循环计算
    for (i; i > 0; i--)
        a = a * i;
    //打印每次计算出的阶乘值
    printf("\nx! = %d\n", a);
    //以float形式 返回计算结果
    return a;
}

//计算幂的函数
int mypow(int m){
    int power = 1;
    for (int i = 0; i < m; i++){
        power = m * power;
        //只打印计算好了的幂,不打印过程                   
        if (i == (m - 1))
        printf("\n%d `s %d power is: %d", m,m, power);
    }
    return power;
}

你可能感兴趣的:(C/C++,代码练习)