kid_0203 2015-12-22 14:10 采纳率: 50%
浏览 2193
已采纳

c语言求求e的x次方为何有误差,,,

求e的x次方***
已知 编写程序求ex = 1 + x + x2/2! + x3/3! + ...,要求到最后一项小于0.001为止。

测试用例
0↵ 1.00000↵
测试用例
1↵ 2.71806↵

测试用例 3
0.5↵ 1.64844↵

#include<stdio.h>
#include<math.h>
double f(int m)
{if(m>1) return m*f(m-1);
else return 1;
}
int main()
{double x,s=1,m=1,n=0,i;
scanf("%lf",&x);
for(i=1;m-0.001>=1e-10;i++)
s+=(m=pow(x,i)/f(i));
printf("%.5f\n",s);
} 

这是我编写的程序 这个结果不准确有误差m-0.001>=1e-10这个判断改了好几种方式还是不行。。。

  • 写回答

3条回答 默认 最新

  • ysuwood 2015-12-22 15:59
    关注
     #include<stdio.h>
    #include<math.h>
    double f(double m)
    {
        if(m>1) return m*f(m-1);
        else return 1;
    }
    int main()
    {
        double x,s=1,m=1,n=0,i;
        scanf("%lf",&x);
        for(i=1;;i++)
        {
            m=pow(x,i)/f(i);
            if(m<0.001) break;
            s+=m;
        }
        printf("%.5f\n",s);
    } 
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?
  • ¥15 电磁场的matlab仿真