1樓:匿名使用者
演算法沒有錯,錯的是你選錯了迴圈的極限。階乘積累的很快,超過100以後long就無法表示了,到了1000就成了nan,把1000換成20就可以了。
2樓:匿名使用者
100太大了,而且1/1000!那都小數點後多少位了,用20精度就夠了
3樓:匿名使用者
a 溢位了,a階乘到150,a的值都到了10的260次方了,知道10的260次方是什麼概念嗎?給你說吧,光的速度是最快的,3乘以10的8次方米每秒,一年就走9,460,730,472,580,800米,約等於10的16次方!a階乘到150都那麼利害了,更何況階乘到1000?
給你改了一下程式,可以得到更精確的數:
#include
using namespace std;
int main()
cout.precision( 20 ); //設定確定度cout << a << endl;
cout << s << endl;}
4樓:z一騎絕塵
#include
#include
using namespace std;
int main()
else
break;
//end if
};//end for
cout << "受精度限制:\t";
cout << "a =" << t << endl;
cout << "\ts = " << s << endl;
return 0;
} 這裡用t儲存a的上限值 以求最高精度。當然你也可以自己定義一個更大的資料型別只是我水平不夠。不做了
5樓:匿名使用者
給你一個絕對不溢位的演算法:
#include
using namespace std;
void main()
cout<
c++中求出e值
6樓:紫薇參星
你的抄求e值的c++程式,我幫你改完了,你看看吧(改動的地方見註釋)#include
using namespace std;
int main()
sum=sum+1;
printf("%.10f",sum);
return 0;}
一道c++程式設計題,求出e的值
7樓:匿名使用者
#include
#include
int main()
printf("%.10f", e);}
c++求e的近似值
8樓:匿名使用者
#include "stdafx.h"
#include
using namespace std;
void main()
cout << "e=" << y+1<< endl;
}請採納
c++ 計算e的近似值,求指導
9樓:
公式應該是:e=1+1/1!+1/2!+1/3!+..+1/n!
**:#include "iostream"
using namespace std;
int fact(int n)//求階乘
int sum=1;
int i;
if(n==0)
return 1;
else
for(i=1;i<=n;i++)
sum*=i;
return sum;
int main()
int i=1,j=1,n;
double e,t=0;
cin>>n;
e=0;
for(i=0;i<=n;i++)
t+=1.0/fact(i);
e=e+t;
cout<<"e=" c++中用哪個函式求e的n次冪的值 10樓:東風冷雪 pow 函式 #include載入標頭檔案 pow(e,n); c++ 按下列公式,求e的近似值。e=1+1/1!+1/2!+1/3!+…+1/n! 11樓:匿名使用者 #include #include int main() printf("%.10f", e);} 12樓:匿名使用者 寫個迴圈,累加就行了 13樓:90李鵬 看**片段 double x = 1, sum = 1; for(int i = 1; i < 10000; ++i) 14樓:秦風依舊在 #include using namespace std; float calce(int n) cout< 15樓:匿名使用者 #include int main() sum += 1.0/pro; }printf("%f", sum); return 0;} 16樓:匿名使用者 #include using namespace std; int main() cout<<"e="< return 0;} 17樓:匿名使用者 #include void main() printf("e=%lf\n",e);} 少了大括號導致for的迴圈體錯誤。更正如下 include main printf lf e 1 少對大括號 e e 1 s 這句也是for迴圈裡面的 改成這樣 include main printf lf e 1 請把for迴圈的內容用花括號處理一下 沒啥問題啊,能執行出來說明程式本身是沒有問題的... 如果是全域性使用的可以單獨宣告靜態變數。如果是區域性使用的話 傳入,通過建構函式 傳出,通過窗體事件。舉個例子,form1在某方法中新建form2例項 向其傳入引數,並等待其關閉後得到傳出的資料。1.form2應定義一個帶有引數的建構函式,如public form2 int inputparam 2... 返回值是在堆疊裡分配的。在呼叫之前就已經把堆疊壓入,呼叫完成之後,返回值會放在呼叫時準備好的堆疊裡。返回後,堆疊彈出,主程式就可以訪問堆疊裡的返回值了。是不是動態分配,要這樣考慮 1.如果返回值是一個值型的,如一個int型,一個結構體等,那這個變數不能算是動態分配的,因為這個地址是在堆疊裡,事先計算...一道簡單的c語言題求e的值,一道簡單的C語言題,求e的值,e1111213用for迴圈,計算前50項。
c中form窗體之間怎麼傳值,C 中Form窗體之間怎麼傳值?
C 裡的返回值,C 中的返回值指的是什麼?