计算e的值 e = 1+ 1/1! + 1/2! + 1/3!……

  • Post author:
  • Post category:其他


#include <stdio.h>
//计算阶乘的函数
float factorial(int);
//计算e的值
//e = 1+ 1/1! + 1/2! + 1/3!......
int calculateE(int);

int main(){
    //存储输入的数值(用来做阶乘分之一的次数)
    int x;
    //循环标志位
    char start;
    printf("start?(y/n): ");
    scanf("%c", &start);
    while (start == 'y'){
        fflush(stdin);
        printf("enter 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 = 1.000000 / 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;
}


点击(此处)折叠或打开
#include <stdio.h>
//计算阶乘的函数
float factorial(int);
//计算e的值
//e = 1+ 1/1! + 1/2! + 1/3!......
int calculateE(int);

int main(){
    //存储输入的数值(用来做阶乘分之一的次数)
    int x;
    //循环标志位
    char start;
    printf("start?(y/n): ");
    scanf("%c", &start);
    while (start == 'y'){
        fflush(stdin);
        printf("enter 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 = 1.000000 / 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;
}



版权声明:本文为u012802028原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。