C語言入門(6)——C語言常用數學函式
在編碼過程中會經遇到數學運算,幸運的是C語言提供了非常豐富的數學函式庫。
在數學中使用函式有時候書寫可以省略括號,而C語言要求一定要加上括號,例如sin(pi/2)這種形式。在C語言的術語中,pi/2是引數,sin是函式,sin(pi/2)是函式呼叫。
函式呼叫也是一種表示式。這個表示式由函式呼叫運算子(也就是括號)和兩個運算元組成,運算元sin稱為Function Designator,是函式型別的,運算元pi/2是double型的。這個表示式的值就是sin(pi/2)的計算結果,在C語言的術語中稱為函式的返回值。
下面演示一些常用的函式用法。在使用數學函式需要時要引入標頭檔案math.h。
1、函式名:abs
功能:返回整型數的絕對值.
用法:Abs(number)
number 引數可以是任意有效的數值表示式。如果 number 包含 Null,則返回 Null;如果是未初始化變數,則返回 0.
程式碼舉例:
#include <stdio.h>
#include <math.h>
int main()
{
intnumber = -1234;
printf("數字: %d 的絕對值是: %d \n", number, abs(number));
system("pause");
return0;
}
執行結果:
2、函式名:fabs
功能:求浮點數x的絕對值.
用法:fabs(double x);
程式碼舉例:
#include <stdio.h>
#include <math.h>
int main()
{
floatnumber = -1234.0;
printf("數字: %f 的絕對值是: %f \n", number, fabs(number));
system("pause");
return0;
}
執行結果:
3、函式名:sqrt
功能:返回指定數字的平方根.
用法:sqrt (double x);
說明:sqrt即平方根計算(Square Root Calculations),通過這種運算可以考驗CPU的浮點能力。
程式碼舉例:
#include <math.h>
#include <stdio.h>
int main(void)
{
doublex = 4.0, result;
result =sqrt(x);
printf("%f 的平方根是 %f\n", x, result);
system("pause");
return0;
}
執行結果:
4、函式名:pow
功能:返回指定數字的指定次冪.
用法:pow (double x, double y);(將返回x的y次冪)
返回值:x不能為負數且y為小數,或者x為0且y小於等於0,返回冪指數的結果。
返回型別:double型,int,float會給與警告!
程式碼舉例:
#include<math.h>
#include<stdio.h>
int main(void)
{
doublex = 2.0, y = 3.0;
printf("%lf 的 %lf 次方是 %lf\n", x, y, pow(x, y));
system("pause");
return0;
}
執行結果:
5、函式名: frexp
功 能:把一個雙精度數分解為尾數的指數
用 法:double frexp(doublevalue, int *eptr);
引數:
x : 要分解的浮點資料
expptr : 儲存指數的指標
返回值:返回尾數
說 明:其中 x = 尾數 * 2^指數
程式碼舉例:
#include <math.h>
#include <stdio.h>
int main(void)
{
doublemantissa, number;
intexponent;
number =8.0;
mantissa =frexp(number, &exponent);
printf("數字 %lf 是 %lf 乘以2的 %d 次方\n", number, mantissa, exponent);
system("pause");
return0;
}
執行結果:
驗證:8 = 0.5* 2^4 = 0.5 * 16
6、函式名:ceil / floor
功能: 向上舍入/向下舍入
用法:double ceil(doublex);
double floor(double x);
程式碼舉例:
#include<math.h>
#include<stdio.h>
int main(void)
{
doublenumber = 123.54;
doubledown, up;
down =floor(number);
up =ceil(number);
printf("數字:%5.2lf\n", number);
printf("向下舍入的結果:%5.2lf\n", down);
printf("向上舍入的結果:%5.2lf\n", up);
system("pause");
return0;
}
執行結果:
7、函式名: atof (const char *s);
功 能: 把字串轉換成浮點數
用 法: double atof(constchar *nptr);
程式碼舉例:
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
float arg, *point = &arg;
float f;
char *str = "12345.67";
f = atof(str);
printf("string = %s float = %f\n", str, f);
system("pause");
return 0;
}
執行結果:
C語言關於數學運算的函式還有很多,例如三角函式、對數函式等,用法比較簡單,就不一一舉例了。