c語言數學庫函數
『壹』 求教 c語言的數學庫函數與標准庫函數 有什麼不同
C語言的標准變抄化了好幾襲次,現在說的標准C語言指的是99年制定的C99標准。其中定義的函數庫就是C語言標准函數庫。具體有哪些你可以查詢《C語言參考手冊(C:A Reference Manual,Fifth Edition》。
但事實上,每個C/C++編譯器都帶有自身的函數庫,一般都兼容C標准函數庫,但也有個別的有些細節上的出入。所以,一般你只要考察你所用編譯器的函數庫就行了(通常都可以從幫助中得到)。
數學函數是標准庫函數的一種
『貳』 要記住C語言數學函數庫中的那些函數
使用一些數學演算法,如:三角函數sin,cos;X^n;開平方啊 等
『叄』 c語言常用庫函數有哪些
C語言的標來准庫函數有數百個,源分布在不同的庫文件中,目前絕大多數系統和程序肯定兼容的是C99標准,但2011年已經發布了更新的版本,有些遺留系統不一定支持最新的特性。
不同函數應用場合不一樣,說不說哪些更常用,就看你所做工作的性質了。
通常來說,至少在基礎編程時,stdio中的輸入輸出(可能是控制台的、也可能是文件的)、stdlib中的各種通用工具(如分配堆內存)、string中的字元串處理、time中的日期時間處理、math中的數學函數都算是比較常用的。
『肆』 c語言數學函數庫哪裡有
C語言中之數學函數
C語言提供了以下的數學函數,要使用這些函數時,在程序文件頭必須加入:
#include <math.h>
編譯時,必須加上參數「-lm」(表示連結至數學函式庫),例如「gcc -lm test.c」。
函數之自變數與傳回之值型別見自變數或函數前之型別宣告。
函數已經在「math.h」或其它標頭檔宣告過了,因此在使用時不必再加型別宣告,例如「y=sin(x);」,不用寫成「y=double sin(double x);」。
函數說明
double sin(double x)
x 的正弦函數值
double cos(double x)
x 的餘弦函數值
double tan(double x)
x 的正切函數值
double asin(double x)
x 的反正弦函數值 sin-1x,x的值在 [-1,1] 之間,傳回的值在 [-p/2,p/2] 之間
double acos(double x)
x 的反餘弦函數值cos-1x,x的值在 [-1,1] 之間,傳回的值在 [-p/2,p/2] 之間
double atan(double x)
x 的反正切函數值tan-1x,傳回的值在 [-p/2,p/2] 之間
double atan2(double y, double x)
y/x 的反正切函數值tan-1(y/x),傳回的值在 [-p, p] 之間
double sinh(double x)
x 的雙曲正弦函數值
double cosh(double x)
x 的雙曲餘弦函數值
double tanh(double x)
x 的雙曲正切函數值
double exp(double x)
x 的指數函數 ex
double log(double x)
x 的自然對數 ln(x),x > 0
double log10(double x)
x 底數為 10 的對數,log10x,x > 0
double pow(double x, double y)
x 的 y 次方 xy
double sqrt(double x)
x 的根號值 √x
double ceil(double x)
不小於 x 的最小整數(但其型別為 double)
double floor(double x)
不大於 x 的最大整數(但其型別為 double)
int abs(int x)
整數 x 的絕對值 |x|
long labs(long x)
長整數 x 的絕對值 |x|
double fabs(double x)
實數 x 的絕對值 |x|
double ldexp(double x, int n)
x?2n
double fmod(double x, double y)
x/y 的浮點數余數,符號與 x 相同
範例:各個數學函式的使用方法
#include <stdio.h>
#include <math.h>
#define PI 3.14159
int main(void)
{
double x,y,z;
int n;
x=4.0;
y=sqrt(x);
printf("x=%fty=%fn",x,y);
x=PI/4;
y=sin(x);
printf("x=%fty=%fn",x,y);
x=2.0;
y=3.0;
z=pow(x,y);
printf("x=%fty=%ftz=%fn",x,y,z);
x=1.5;
n=4;
y=ldexp(x,n);
printf("x=%ftn=%dty=%fn",x,n,y);
return 0;
}
『伍』 C語言庫函數
假定你是在linux下做這件事 (在windows下應該也是類似的)
假定你要產生的庫名字為回 libtest.a
1. 實現庫函數於答 test.c
#include <stdio.h>
int test()
{
printf("hello world!\n");
return 0;
}
test.h內容:
extern int test();
2. 編譯test.c並產生庫文件
gcc -c test.c
ar -r libtest.a test.o
3. 其他程序如何調用 libtest.a 里的 test()函數?
main.c
#include "test.h"
int main()
{
return test();
}
4. 編譯main.c產生可執行文件
gcc -o main.out main.c -L/path/to/libtest -ltest
5. 運行 main.out
./main.out
PS, 頭文件的用處無非就是提供函數原型聲明,在我上面給的例子中,可以把 test.h 刪除, 但是必須在 main.c 里自己加上 extern int test(); 來聲明函數。
『陸』 C語言中全部可用的數學函數有哪些
三角函數
反三角函數
雙曲三角函數
指數與對數
取整
絕對值
標准化浮點數
取整與取余
『柒』 C語言數學庫函數問題
你試一下就知道了,還有就是網路下函數原型,求弧度的公式等等
物聯網校企聯盟技術部
『捌』 c語言中math頭文件中的函數有哪些
數學函數庫,一些數學計算的公式的具體實現是放在math.h里,具體有:
1 三角函數
double sin (double);
double cos (double);
double tan (double);
2 反三角函數
double asin (double); 結果介於[-PI/2, PI/2]
double acos (double); 結果介於[0, PI]
double atan (double); 反正切(主值), 結果介於[-PI/2, PI/2]
double atan2 (double, double); 反正切(整圓值), 結果介於[-PI/2, PI/2]
3 雙曲三角函數
double sinh (double);
double cosh (double);
double tanh (double);
4 指數與對數
double exp (double);
double sqrt (double);
double log (double); 以e為底的對數
double log10 (double);
double pow(double x, double y)//計算以x為底數的y次冪
5 取整
double ceil (double); 取上整
double floor (double); 取下整
6 絕對值
double fabs (double);
double cabs(struct complex znum) //求復數的絕對值
7 標准化浮點數
double frexp (double f, int *p); 標准化浮點數, f = x * 2^p, 已知f求x, p ( x介於[0.5, 1] )
double ldexp (double x, int p); 與frexp相反, 已知x, p求f
8 取整與取余
double modf (double, double*); 將參數的整數部分通過指針回傳, 返回小數部分
double fmod (double, double); 返回兩參數相除的余數
9其他
double hypot(double x, double y);//已知直角三角形兩個直角邊長度,求斜邊長度
double ldexp(double x, int exponent);//計算x*(2的exponent次冪)
double poly(double x, int degree, double coeffs [] )//計算多項式
nt matherr(struct exception *e)//數學錯誤計算處理程序
source: 《C & C++ Code Capsules》
『玖』 在C語言里,關於庫函數中各種數學函數的代碼。
你說的就是庫函數的源碼,也就是glibc,源碼在ftp://ftp.gnu.org/gnu/glibc可以下到,比如下載ftp://ftp.gnu.org/gnu/glibc/glibc-2.9.tar.gz,打開後就可以看到你需要的各種庫的具體實現代碼,比如在string中的strcat.c中就有
char*strcat(dest,src)
char*dest;
constchar*src;
{
char*s1=dest;
constchar*s2=src;
reg_charc;
/*Findtheendofthestring.*/
do
c=*s1++;
while(c!='