#include<iostream.h>
#include<iomanip.h>
#include<math.h>
fac(int n);
int main()
{
float x,f,funcvalue,approx=0;
int n=0;
cout<<"please enter the index of e: "<<endl;
cin>>x;
funcvalue = exp(x);
cout<<funcvalue<<endl;
while((abs(approx-funcvalue))<1e-12)
{
f=fac(n);
approx=approx+pow(x,n)/f;
n++;
}
cout<<"e^"<<x<<" = "<<setw(18)<<setiosflags(ios::showpoint)<<setiosflags(ios::right)<<funcvalue<<endl;
cout<<"the approximate result is : "<<setw(18)<<setiosflags(ios::showpoint)<<setiosflags(ios::right)
<<approx<<endl;
return 0;
}
fac(int n)
{
float f;
if(n==0)
return 1;
else
f=fac(n-1)*n;
return f;
}
uj5u.com熱心網友回復:
abs(approx-funcvalue))<1e-12你要確保這個條件滿足就可以進去吶,你輸入 -13,就可以進去的……還有你的fac(int n)沒有寫回傳型別,沒有報錯么? 正確的寫法應該是float fac(int n);
uj5u.com熱心網友回復:
應該是大于吧,while((abs(approx-funcvalue))>1e-12)uj5u.com熱心網友回復:
while((abs(approx-funcvalue))>1e-12) 設斷點,用單步除錯看看條件滿足不?uj5u.com熱心網友回復:
fac函式沒有回傳值型別?uj5u.com熱心網友回復:
abs是整數的絕對值函式,浮點數的是fabs,這一句:while((abs(approx-funcvalue))<1e-12)改一下,改成while((fabs(approx-funcvalue))<1e-12),你繼續檢查還有沒有其他錯誤轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/113050.html
標籤:基礎類
