程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> printf-c語言求求e的x次方為何有誤差,,,

printf-c語言求求e的x次方為何有誤差,,,

編輯:編程綜合問答
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這個判斷改了好幾種方式還是不行。。。

最佳回答:


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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved