1樓:
/** 編譯成可執行檔案後,在dos提示符下執行:
* 如果帶一個命令列引數,則該值為要計算的位數;
* 如果還帶有第二個引數,則使用stomer公式計算。
* **如下:
*/#include
#include
void main(int argc,char *argv)
,k0[3] = ,n0[3] = ;
int d,i,j,k,p,q;
d=(argc>1)?(((i = atoi(argv[1]))<0)?0:i):1000;
q=(argc>2)?1:0;
printf("%s\n\n", "nature (r) pi value compute program (c) tue 2005.11.10");
printf("pi= %s%d * arctg(1/%d) %s %d * arctg(1/%d) %s %d * arctg(1/%d) [%s]\n",
k0[q][0] ? "" : "-", t0[q][0], n0[q][0], k0[q][1] ? "+" : "-", t0[q][1],
n0[q][1], k0[q][2] ? "+" : "-", t0[q][2], n0[q][2], q ? "stomer" : "gauss");
if((t = (long *)calloc((d += 5) + 1, sizeof(long))) == null)
return 1;
if((pi = (long *)calloc(d + 1, sizeof(long))) == null)
return 2;
for(i = d; i >= 0; i--) pi[i] = 0;
for(p = 0; p < 3; p++)
while (j > 0 && t[j] == 0)
j--;
for (k = !k, s = 3, n *= n; j > 0; k = !k, s += 2)
while (j > 0 && t[j] == 0)
j--;
for (r = 0, i = j; i >= 0; i--) }}
for (n = i = 0; i <= d; pi[i++] = r)
printf("pi= %ld.", pi[d]);
for (i = d - 1; i >= 5; i--)
printf("%ld%s", pi[i], ((m = d - i + 5) % 65) ? ((m % 5) ? "" : " ") : "\n");
printf("%sdigits: %d\n", (m % 65) ? "\n" : "", d - 5);
return 2;getch();}
2樓:匿名使用者
不過用tc編譯的時候會提示錯誤 因為陣列太長
最好找別的編譯器
#include "stdio.h"
#include "conio.h"
long a=10000, b, c=28000, d, e, f[28010], g;
void main()
或/** 編譯成可執行檔案後,在dos提示符下執行:
* 如果帶一個命令列引數,則該值為要計算的位數;
* 如果還帶有第二個引數,則使用stomer公式計算。
* **如下:
*/ #include
#include
void main(int argc,char *argv)
,k0[3] = ,n0[3] = ;
int d,i,j,k,p,q;
d=(argc>1)?(((i = atoi(argv[1]))<0)?0:i):1000;
q=(argc>2)?1:0;
printf("%s\n\n", "nature (r) pi value compute program (c) tue 2005.11.10");
printf("pi= %s%d * arctg(1/%d) %s %d * arctg(1/%d) %s %d * arctg(1/%d) [%s]\n",
k0[q][0] ? "" : "-", t0[q][0], n0[q][0], k0[q][1] ? "+" : "-", t0[q][1],
n0[q][1], k0[q][2] ? "+" : "-", t0[q][2], n0[q][2], q ? "stomer" : "gauss");
if((t = (long *)calloc((d += 5) + 1, sizeof(long))) == null)
return 1;
if((pi = (long *)calloc(d + 1, sizeof(long))) == null)
return 2;
for(i = d; i >= 0; i--) pi[i] = 0;
for(p = 0; p < 3; p++)
while (j > 0 && t[j] == 0)
j--;
for (k = !k, s = 3, n *= n; j > 0; k = !k, s += 2)
while (j > 0 && t[j] == 0)
j--;
for (r = 0, i = j; i >= 0; i--) }
} for (n = i = 0; i <= d; pi[i++] = r)
printf("pi= %ld.", pi[d]);
for (i = d - 1; i >= 5; i--)
printf("%ld%s", pi[i], ((m = d - i + 5) % 65) ? ((m % 5) ? "" : " ") : "\n");
printf("%sdigits: %d\n", (m % 65) ? "\n" : "", d - 5);
return 2;getch();}
3樓:匿名使用者
b-s 那些盜用版權者
4樓:科文專家
495196274 - 魔法學徒 一級
如何用c語言程式實現輸出圓周率小數點後100位小數?
5樓:希望村村民
double精度不夠,只有用陣列模擬了。
樓上的程式不正確,我改了下
#include
int main()
用天平,白紙,尺子,圓規等求圓周率
其實割圓法就是畫一個內接於圓形的正六邊形。透過不斷倍增內接多邊形的邊數,他發現其周界會越來越接近圓周。就是把正六邊形畫成正十二邊形,又把正十二邊形畫成正二十四邊形。就這樣,到了後來,就已經是一個圓了。像電腦裡的圓形一樣,以前電腦裡是沒有圓的。但是把一個正方形的角平均的剪了,這個正方形就會變成八角形了...
求C語言程式設計高手編寫以下C程式,本人用VC 6 0除錯。非常感謝
我教你一種很簡單的方法啊.利用pow.pow 2,3 也就是求2的3次方.你想啊.如果要求2的3次根呢.那不就是pow 2,1 3 了麼.但是這樣寫是不行地.必須寫成pow 2,double 1 3 這樣就可以了.include stdio.h include math.h void main 輸入...
用C語言程式設計 求x的n次方的函式
馬新筠營兒 double pow double x,double y pow 用來計算以x 為底的y 次方值,然後將結果返回 可能導致錯誤的情況 如果底數 x為負數並且指數 y不是整數,將會導致 domain error 錯誤。如果底數 x和指數y都是 0,可能會導致 domain error 錯誤...