首页 理论教育C语言中常见的数学标准库函数

C语言中常见的数学标准库函数

【摘要】:下面介绍几类最常用的数学类标准库函数在程序中的使用方式。程序的运行过程和结果如下:Input a int number:45number:45absolute value:45Input a long int number:-76532number:-76532absolute value:76532Input a double number:4433.54number:4433.540000absolute value:4433.5400002.求余数类数学函数算术运算符中的求余运算符“%”只能对整型数据进行操作,对实型数据的求余数运算只能通过标准库函数fmod进行。程序的运行过程和结果如下:intput two double number:4654.293 234.287The remainder ofis 202.8400003.取整数部分函数常用取整数部分函数有:floor和ceil。利用函数rand产生处于0~99的5个随机整数。

数学运算是计算机应用中最基本的操作,C语言的标准函数库中提供了很多关于数学运算的函数,如求绝对值、求平方根等。数学运算函数主要是在math.h中进行定义,还有一些其他头文件中也涉及了与数学计算有关的函数定义,如在stdlib.h中。下面介绍几类最常用的数学类标准库函数在程序中的使用方式。

1.求绝对值类数学函数

常用的求绝对值函数有:abs、labs和fabs。其中,abs和labs的函数原型在头文件stdlib.h中声明,fabs的函数原型在头文件math.h中声明,函数原型声明如下:

int abs(int x); /*求整数x的绝对值*/

long labs(long int x); /*求长整型数x的绝对值*/

double fabs(double x); /*求双精度实型数据x的绝对值*/

【例2.17】 绝对值函数使用示例。

程序的运行过程和结果如下:

Input a int number:45

number:45 absolute value:45

Input a long int number:-76532

number:-76532 absolute value:76532

Input a double number:4433.54

number:4433.540000 absolute value:4433.540000

2.求余数类数学函数

算术运算符中的求余运算符“%”只能对整型数据进行操作,对实型数据的求余数运算只能通过标准库函数fmod进行。函数的原型在头文件math.h中声明,函数原型声明如下:

double fmod(double x,double y);     //余数的符号与x相同

【例2.18】 求余数函数使用示例。

程序的运行过程和结果如下:

intput two double number:4654.293 234.287

The remainder of(4654.293000/234.287000)is 202.840000

3.取整数部分函数

常用取整数部分函数有:floor和ceil。函数原型在头文件math.h中声明,函数原型如下:

double floor(double x);   //返回不大于x的最大整数,向下舍入

double ceil(double x);//返回不小于x的最小整数,向上舍入

【例2.19】 取整数部分函数使用示例。

程序运行结果如下:

[23.154000]floor:23.00,ceil:24.00

[-23.154000]floor:-24.00,ceil:-23.00

4.三角函数类数学函数

常用的三角函数有:sin、cos、tan、sinh、cosh和tanh,函数原型均在头文件maht.h中声明,函数原型声明如下:

double sin(double x);  //求x正弦值

double cos(double x);//求x余弦值

double tan(double x);//求x正切值

double sin h(double x);//求x双曲正弦值,其中//sin h(x)=(ex-e-x)/2

double cos h(double x);//求x双曲余弦值

double tan h(double x);//求x双曲正切值

三角函数的参数必须为弧度,当提供的数据为角度时,应将其转化为对应的弧度。设用c表示角度,用x表示弧度,角度转换为弧度的方法为:

【例2.20】 从键盘上输入一个角度值,求出它的正弦函数值和余弦函数值。(www.chuimin.cn)

程序的运行过程和结果如下:

Input the x:60.63

sin(60.63)=0.871470

cos(60.63)=0.490448

5.指数类数学函数

常用的指数类函数有:exp、pow和pow10,函数的原型均在头文件math.h中声明,函数原型声明如下:

【例2.21】 指数类数学函数使用示例。

程序的运行过程和结果如下:

Input the x:4.65

4.650000*4.650000=21.622500

(e^4.650000)=104.584986

6.对数类数学函数

常用的对数类函数有:log、log 10,函数的原型均在头文件math.h中声明,函数原型声明如下:

double log(double x);     //求以e为底的x的对数,即:ln(x)的值

double log 10(double x);//求以10为底的x的对数,即:lg(x)的值

【例2.22】 对数类数学函数使用示例。

程序的运行过程和结果如下:

Input the x:34.572

The natural log of 34.572000 is 3.543044

The common log of 34.572000 is 1.538725

7.平方根类函数

常用的平方根类函数为sqrt,函数的原型在头文件math.h中声明,函数原型声明如下:

double sqrt(double x);    //求x的算术平方根,这里x≥0

【例2.23】 求平面上任意两点之间的距离,两点的坐标值从键盘上输入。

程序的运行过程和结果如下:

输入第一个坐标点的值(x1,y1):23.45,24.7

输入第二个坐标点的值(x2,y2):12.36,87.2

两点间距离为:63.476280

8.随机数类函数

常用的随机类函数有:rand和srand,函数的原型均在头文件stdlib.h中声明,函数原型声明如下:

int rand(void);       //返回一个范围在0~215-1的随机整数

int srand(unsigned int seed);//初始化随机数发生器

如果直接用rand函数产生随机数,每次运行程序的结果都相同。为了得到真正意义上的随机数,需要使用srand对系统的随机数发生器进行初始化。srand函数的参数最好是一个可以随程序执行时间不同而变化的数据,常常使用time(NULL)函数调用取出系统当前时钟值来作为srand函数的参数。

【例2.24】 利用函数rand产生处于0~99的5个随机整数。

程序的运行过程和结果如下:

[0,99]范围内的随机数:

8 13 9 53 6