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

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


  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值