库函数
数学函数
本文介绍了pow、frexp、modf、rand函数。
1、pow
本函数的功能是求指数函数的值。
语法格式为
double pow(double x,double y)
输出的是x的y次幂的值。
cout << "pow(2.0, 3.0)= " << pow(2.0, 3.0) << endl;
cout << "pow(2, 3)= " << pow(2, 3) << endl;
cout << "pow(2.0, 0)= " << pow(2.0, 0) << endl;
cout << "pow(0, 3.0)= " << pow(0, 3.0) << endl;
cout << "pow(0, 0)= " << pow(0, 0) << endl;
运行结果如下
2、frexp
本函数的功能是将双精度的数分解为数字部分和以2为底的指数。
语法格式为
double frexp(double val,int *eptr);
即 val = x * 2^n;
输出x,并且将n赋值给 *eptr;
其中,x的取值范围为[0.5,1);
int n = 0;
double x = frexp(3.5, &n);
cout << "x=" << x << " " << "n=" << n << endl;
x *= pow(2.0, n);
cout << x << endl;
运行以上程序,输出结果如下
3、modf
本函数的功能是将双精度数分解成为整数部分和小数部分。
语法结构如下
double modf(double val, double *iptr);
其中,输出的是小数部分,整数部分会存储在 *iptr 所指的空间。
double a = 0;
cout << "modf(3.5,&a)=" << modf(3.5, &a) << endl;
cout << "a=" << a << endl;
运行以上程序,输出结果如下
4、rand
本函数的功能是输出一个-90到32767之间的随机整数。但是这个随机数是一个伪随机数。
语法结构如下
int rand(void)
cout << rand() << endl;
cout << rand() << endl;
cout << rand() << endl;
cout << rand() << endl;
输出结果为
41
18467
6334
26500
如果要产生真随机数,则可以使用当前系统时间作为随机种子,然后由于时间的不同,便可以产生一个真随机数。
要使用本方法的话,需要添加time.h头文件。即在文件开始时添加以下代码。
#include <time.h>
srand(time(NULL));
cout << rand() << endl;
cout << rand() << endl;
cout << rand() << endl;
cout << rand() << endl;
此时产生的随机数便不可预测了。
注意
本文使用的操作系统是Windows 7 64位处理器。
使用的软件是Microsoft visual studio 2015
在使用数学函数的时候,应该在源文件中添加以下命令
#include <math.h>