C語言中之數(shù)學函數(shù)
創(chuàng)新互聯(lián)建站主營八步網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,手機APP定制開發(fā),八步h5成都微信小程序搭建,八步網(wǎng)站營銷推廣歡迎八步等地區(qū)企業(yè)咨詢
C語言提供了以下的數(shù)學函數(shù),要使用這些函數(shù)時,在程序文件頭必須加入:
#include
math.h
編譯時,必須加上參數(shù)「-lm」(表示連結至數(shù)學函式庫),例如「gcc
-lm
test.c」。
函數(shù)之自變量與傳回之值型別見自變量或函數(shù)前之型別宣告。
函數(shù)已經(jīng)在「math.h」或其它標頭檔宣告過了,因此在使用時不必再加型別宣告,例如「y=sin(x);」,不用寫成「y=double
sin(double
x);」。
函數(shù)說明
double
sin(double
x)
x
的正弦函數(shù)值
double
cos(double
x)
x
的余弦函數(shù)值
double
tan(double
x)
x
的正切函數(shù)值
double
asin(double
x)
x
的反正弦函數(shù)值
sin-1x,x的值在
[-1,1]
之間,傳回的值在
[-p/2,p/2]
之間
double
acos(double
x)
x
的反余弦函數(shù)值cos-1x,x的值在
[-1,1]
之間,傳回的值在
[-p/2,p/2]
之間
double
atan(double
x)
x
的反正切函數(shù)值tan-1x,傳回的值在
[-p/2,p/2]
之間
double
atan2(double
y,
double
x)
y/x
的反正切函數(shù)值tan-1(y/x),傳回的值在
[-p,
p]
之間
double
sinh(double
x)
x
的雙曲正弦函數(shù)值
double
cosh(double
x)
x
的雙曲余弦函數(shù)值
double
tanh(double
x)
x
的雙曲正切函數(shù)值
double
exp(double
x)
x
的指數(shù)函數(shù)
ex
double
log(double
x)
x
的自然對數(shù)
ln(x),x
double
log10(double
x)
x
底數(shù)為
10
的對數(shù),log10x,x
double
pow(double
x,
double
y)
x
的
y
次方
xy
double
sqrt(double
x)
x
的根號值
√x
double
ceil(double
x)
不小于
x
的最小整數(shù)(但其型別為
double)
double
floor(double
x)
不大于
x
的最大整數(shù)(但其型別為
double)
int
abs(int
x)
整數(shù)
x
的絕對值
|x|
long
labs(long
x)
長整數(shù)
x
的絕對值
|x|
double
fabs(double
x)
實數(shù)
x
的絕對值
|x|
要用弧度計算的,另外,pintf語句中,應該是"%lf",不是"f%"
sin()是三角函數(shù),參數(shù)使用的是弧度,不是度。
asin()才是反三角函數(shù)。
資料 :
NAME
asin, asinf, asinl - arc sine function
SYNOPSIS
#include math.h
double asin(double x);
float asinf(float x);
long double asinl(long double x);
Link with -lm.
DESCRIPTION
The asin() function calculates the arc sine of x; that is the value
whose sine is x. If x falls outside the range -1 to 1, asin() fails
and errno is set.
RETURN VALUE
The asin() function returns the arc sine in radians and the value is
mathematically defined to be between -PI/2 and PI/2 (inclusive).
asin函數(shù)返回的是弧度制的角度,你計算的是角度制的值
asin(x)*180.0/3.141592
首先,你輸出的不是正弦圖像,而是反正弦圖像。
#includestdio.h
#includemath.h
int
main(){
double
y;
int
x,m,i;
printf("y=sin(x)
[0x2*pi]\n");
for(y=1;y=-1;y-=0.1){//表示y的取值范圍是[-1,1]
if(y=0){
m=asin(y)*10;
//反正弦函數(shù),確定空格的數(shù)量,最大值為15
for(x=1;xm;x++)printf("
");
//printf("*",m);
printf("*");//注意此時不換行,因為后面還有一個點
for(;x31-m;x++)printf("
");//輸出第二個點,并換行
printf("*\n");}
else{//同理輸出y小于0的點
m=-1*asin(y)*10;
for(i=0;i32;i++)printf("
");
for(x=1;xm;x++)printf("
");
//printf("*",m);
printf("*");
for(;x31-m;x++)printf("
");
printf("*\n",m);
}
}
getchar();
return
0;
}