c語言pi
⑴ 請問c語言中π這個數字要怎麼定義出來呢
有幾個辦法可以實現這個任務。
最簡單地,定義一個宏就可以了:
#define PI 3.1415926
宏替換 ,用於說明某一特定輸入(通常是字元串)如何根據預定義的規則轉換成對應的輸出(通常也是字元串)。這種替換在預編譯時進行,稱作宏展開。解釋器或編譯器在遇到宏時會自動進行這一模式替換。對於編譯語言,宏展開在編譯時發生,編譯順會自動將源程序中的PI替換為3.1415926。
還有一種辦法是定義一個常量(使用const):
const double Pi=3.1415926;
const修飾的數據類型是指常類型,常類型的變數或對象的值是不能被更新的。
const關鍵字的作用主要有以下幾點:
(1)可以定義const常量,具有不可變性。
例如:const int Max=100; Max++會產生錯誤;
(2)便於進行類型檢查,使編譯器對處理內容有更多了解,消除了一些隱患。
例如: void f(const int i) { .........} 編譯器就會知道i是一個常量,不允許修改;
(3)可以避免意義模糊的數字出現,同樣可以很方便地進行參數的調整和修改。 同宏定義一樣,可以做到不變則已,一變都變!
如(1)中,如果想修改Max的內容,只需要:const int Max=you want;即可!
////////////////////////////////////////////////////////////////////////////////////////////////
//(有錯,這樣不能修改,會報重復定義的錯誤)
///////////////////////////////////////////////////////////////////////////////////////////////
(4)可以保護被修飾的東西,防止意外的修改,增強程序的健壯性。 還是上面的例子,如果在函數體內修改了i,編譯器就會報錯;
例如: void f(const int i) { i=10;//error! }
(5) 可以節省空間,避免不必要的內存分配。 例如:
#define PI 3.14159 //常量宏
const double Pi=3.14159; //此時並未將Pi放入RAM中 ......
double i=Pi; //此時為Pi分配內存,以後不再分配!
double I=PI; //編譯期間進行宏替換,分配內存
double j=Pi; //沒有內存分配
double J=PI; //再進行宏替換,又一次分配內存!
const定義常量從匯編的角度來看,只是給出了對應的內存地址,而不是像#define一樣給出的是立即數,所以,const定義的常量在程序運行過程中只有一份拷貝,而#define定義的常量在內存中有若干份拷貝。
(6) 提高了效率。
編譯器通常不為普通const常量分配存儲空間,而是將它們保存在符號表中,這使得它成為一個編譯期間的常量,沒有了存儲與讀內存的操作,使得它的效率也很高。
⑵ c語言pi是什麼常量
應該是C.首先肯定把PI定義成常量,排除D;因為在之後的程序里可以直接用PI來進行計算,符號和字元不能直接計算,所以選C
⑶ c語言中pi=&i是什麼意思
將pi定義為i的引用,不過要是引用的話就需要在前邊加上數據類型。如果是把地址賦值給pi,那麼也是可行的。但是這么以來你所定義的pi和&pi就完全是兩個方面的含義。首先地址只是它在內存中的位置,但是引用卻是這個數據i的完整信息(包括它可以反應出出了i的數據值以外的包括內存等信息)。但是對於局部變數的引用一般是不推薦使用的
⑷ c語言中π怎麼表示
標準的C語言中沒有π這個符號及常量,一般在開發過程中是通過開發人員自己定義這個常量的,最常見的方式是使用宏定義:
#definePI3.141592
也可以直接普通變數定義,如:
doublepi=3.141592;
(4)c語言pi擴展閱讀:
數學函數
所在函數庫為math.h、stdio.h、string.h、float.h
int abs(int i) 返回整型參數i的絕對值
double cabs(struct complex znum) 返回復數znum的絕對值
double fabs(double x) 返回雙精度參數x的絕對值
long labs(long n) 返回長整型參數n的絕對值
double exp(double x) 返回指數函數ex的值
⑸ 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);
}
⑹ C語言中M_PI是什麼意思啊
這是一個在庫文件頭文件math.h中的定義的宏。實際上就是圓周率π的一個近似值,約等於3.1415.
下面是一個求三角函數sin(a)值的一個程序,這里就用到了M_PI這個宏。由於這里的a要求是弧度,所以對於輸入的角的度數做了相應的轉換。
#include <stdio.h>
#include <math.h>
int main()
{
int degree;
printf("Please input angle degree:\n");fflush(NULL);
scanf("%d",°ree);
printf("sin(%d)=%f\n",degree,sin(M_PI*degree/180));
return 0;
}
⑺ C語言 float pi 中的Pi是什麼意思呀
這里的 float pi ,是用戶自定義的一個浮點型變數的變數名。
float是一個單精度的浮點型量,用於表示一個實數(有小數的的數)。
pi大概是圓周率的意思。
不過,前面既然定義了這變數名為pi,那麼後面的Pi可不是前面的pi。這是二個不同的變數名(C語言是對大小寫敏感的,區分大小寫的),有可能是文字處理軟體自動更正所造成的,但是在C語言中是要嚴加註意的。
⑻ C語言求pi
應該是你的演算法 有點小問題
#include <stdio.h>
#include <math.h>
void main ()
{
double i,j=-1,pi=1; //這里我初始化為1
int k=1;
while (fabs(i)>(1e-6))
{
k=k+2;
i=j/k;
pi+=i;
j=-j;//j應該是+1 -1變換的吧 你好像都沒改變 其他就跟你差不多了
}
pi=pi*4;
printf("pi=%10.6lf\n",pi);
}
⑼ 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
",pi);
}
⑽ C語言中圓周率π怎麼打
C語言中並不識別希臘字元π,要使用圓周率,需要自定義π的變數,並指定近似值。
可以使用宏定義的方式,當精度要求不高時,可以使用
#define PAI 3.14
或者
#define PAI 3.14159265
如果精度要求高,可以使用
#define PAI 3.14159265358979
具體定義幾位小數,由運算要求精度決定,由於π是無理數,所以不可能使用絕對精確值。
當調用的時候,直接用宏定義名PAI替代即可。比如半徑為5的圓周長為
double l = 2*PAI*5;