A. 用C語言求π的近似值
循環體里戚巧面的公式有點問題,我重新寫了一下,代碼如下:
void main()
{
double i, pi;
i=1.0,pi=0.0;
while (fabs(1.0/i) >= 1e-6){
pi=(pi + pow(-1.0,i+1)/(2*i-1));
i++;
}
printf("pi=%f\n"擾李,pi* 4);
system("pause");
}
注緩仔遲意輸出的結果是pi*4,望採納!
B. C語言編程計算出π的值 最好有三種方法!! 急求 好人一生平安啊
我只說說π是怎麼近似計算出來的,大一應該學過高數,可以知道:tan π/ 4 =1,從而π=4*arctan1,應用泰勒公式將arctan(x)展開,就可以得到
把這展開式展開,直到最後一項的絕對值小於1e-6為止。
下面是C語言遞歸實現:
#include<stdio.h>
#include<math.h>
void main()
{
float fuc(int n);
float s,pi;
for(int i=1;i<10000;i++)
{s=1.0/(2*i-1);
if(s<1e-6)
break;}
pi=fuc(i);
pi=pi*4;
printf ("pi=%10.6f ",pi);
}
float fuc(int n)
{
float pi;
if(n==1) pi=1;
else if(n%2==0)
pi=fuc(n-1)+(-1.0)/(2*n-1);
else pi=f(n-1)+1.0/(2*n-1);
return(pi);
}
程序運行結果pi=3.141498.
希望能明白明白π的實現原理,增進你的理解。
C. C語言中圓周率π怎麼打
C語言中並不識別希臘字元π,要使用圓周率,需要自定義π的變數,並指定近似值。
可以使用宏定義的方式,當精度要求不高時,可以使用
#define PAI 3.14
或者
#define PAI 3.14159265
如果精度要求高,可以使用
#define PAI 3.14159265358979
具體定義幾位小數,由運算要求精度決定,由於π是無理數,所以不可能使用絕對精確值。
當調用的時候,直接用宏定義名PAI替代即可。比如半徑為5的圓周長為
double l = 2*PAI*5;
D. 在C語言中編寫函數,求出圓周率Pi的近似值
我們經常會運用C語言進行各種數學運算,那麼如何團絕用C語言編寫函數求圓周率Pi的近似值呢?下面我給大家分享一下。
工具/材料
Dev C++
- 01
首先打開Dev C++軟體,新建一個C語言項塌搏姿目,如下圖所示
- 02
然後在C語言文件中導入math庫,並編寫求Pi近似值的邏銀頃輯代碼,如下圖所示
- 03
接下來我們編譯編寫好的C語言文件,如下圖所示
- 04
最後運行C語言文件我們就得到Pi的近似值了,如下圖所示
E. 用C語言編個程序,求π(派)
利用「正多邊形逼近」的方法求出π的近似值
*程序說明與注釋
#include<stdio.h>
#include<math.h>
int main()
{
double e=0.1,b=0.5,c,d;
long int i; /*i: 正多邊形邊數*/
for(i=6;;i*=2) /*正多邊形邊數加倍*/
{
d=1.0-sqrt(1.0-b*b); /*計算圓內接正多邊形的邊長*/
b=0.5*sqrt(b*b+d*d);
if(2*i*b-i*e<1e-15) break; /*精度達1e-15則停止計算*/
e=b; /*保存本次正多邊形的邊長作為下一次精度控制的依據*/
}
printf("pai=%.15lf\n",2*i*b); /*輸出π值和正多邊形的邊數*/
printf("The number of edges of required polygon:%ld\n",i);
}
*問題分析與演算法設計
利用「正多邊形逼近」的方法求出π值在很早以前就存在,我們的先人祖沖之就是用這種方法在世界上第一個得到精確度達小數點後第6位的π值的。
利用圓內接正六邊形邊長等於半徑的特點將邊數翻番,作出正十二邊形,求出邊長,重復這一過程,就可獲得所需精度的π的近似值。
假設單位圓內接多邊形的邊長為2b,邊數為i,則邊數加倍後新的正多邊形的邊長為:
x=√——————
2-2*√———
1-b*b
——————
2
周長為:
y=2 * i * x i:為加倍前的正多邊形的邊數
F. C語言計算PI值,
在0到1之間取兩個隨機數,如果這兩個隨機數(x,y)在四分之一圓內,就加一。
最後用落在圓內的點數,除以總點數,就是PI了。
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#define N 300000
main()
{
long i,n=0;
float x,y,pi;
srand(time(NULL));
for (i=0;i<N;i++)
{
x=1.0*rand()/RAND_MAX;
y=1.0*rand()/RAND_MAX;
if (x*x+y*y<1)
n++;
}
pi=4.0*n/N;
printf("pi=%f\n",pi);
}
G. C語言的求π的值
#include <stdio.h>
#include <math.h>
int main(){
double pi=0,result;
int i=1;
int s=-1;
do{
s*=-1;
result=1.0/i*s;
i+=2;
pi+=result;
}while(fabs(result)>0.000001);
printf("pi=%10.4lf ",pi*4);
return 0;
}