在 C++ 中,除了可以创建各种函数,还包含了各种有用的函数供您使用。这些函数写在标准 C 和 C++ 库中,叫做内置函数。您可以在程序中引用这些函数。
C++ 内置了丰富的数学函数,可对各种数字进行运算。下表列出了 C++ 中一些有用的内置的数学函数。
为了利用这些函数,您需要引用数学头文件
| 序号 | 函数 & 描述 |
|---|---|
| 1 | double cos(double); 该函数返回弧度角(double 型)的余弦。 |
| 2 | double sin(double); 该函数返回弧度角(double 型)的正弦。 |
| 3 | double tan(double); 该函数返回弧度角(double 型)的正切。 |
| 4 | double log(double); 该函数返回参数的自然对数。 |
| 5 | double pow(double, double); 假设第一个参数为 x,第二个参数为 y,则该函数返回 x 的 y 次方。 |
| 6 | double hypot(double, double); 该函数返回两个参数的平方总和的平方根,也就是说,参数为一个直角三角形的两个直角边,函数会返回斜边的长度。 |
| 7 | double sqrt(double); 该函数返回参数的平方根。 |
| 8 | int abs(int); 该函数返回整数的绝对值。该函数也可用于返回浮点数的绝对值。 |
| 9 | double fabs(double); 该函数返回任意一个浮点数的绝对值。该函数也可用于返回整数的绝对值。 |
| 10 | double floor(double); 该函数返回一个小于或等于传入参数的最大整数。 |
举例如下:
序号1-序号3
- #include
- #include
- // const double pi = acos(-1.0); // pi=3.14159
- #define pi 3.1415926
-
- int main()
- {
- //数字定义
- double s;
- //数字赋值
- s = pi/3; // s = pi/3表示的是弧度
-
- //数字输出
- std::cout << "double cos(s):" << cos(s) << std::endl; // 0.5
- std::cout << "double sin(s):" << sin(s) << std::endl; // 0.866
- std::cout << "double tan(s):" << tan(s) << std::endl; // 1.732
-
- return 0;
- }
-
-
序号4
- #include
- #include
- #define e 2.718281828459 // 定义自然底数e
-
- int main()
- {
- //数字定义
- double s;
-
- //数字输出
- std::cout << "double log(e):" << log(e) << std::endl; // 1
-
-
- return 0;
- }
-
-
序号5-序号10
- #include
- #include
- #include
-
- int main()
- {
- //数字定义
- double a, b;
- a = 2;
- b = 3;
-
- //pow(a,b)函数返回a的b次方
- std::cout << "pow(2,3):" << pow(a,b) << std::endl; // 8
-
- // hypot()
- double a1, b1;
- a1 = 3;
- b1 = 4;
- std::cout << "double hypot(3,4):" << hypot(a1, b1) << std::endl; // 5
-
- // sqrt()
- std::cout << "double sqrt(4):" << sqrt(b1) << std::endl; // 2
-
- // int abs()
- double a2;
- a2 = -3.1;
- std::cout << "abs(-3.1):" << abs(a2) << std::endl; // 3.1
-
- int a3;
- a3 = -3;
- std::cout << "abs(-3):" << abs(a3) << std::endl; // 3
-
- // fabs()
- double a4;
- a4 = -3.12345;
- std::cout << "fabs(-3.12345):" << fabs(a4) << std::endl; // 3.12345
-
- // floor()
- double a5, a6;
- a5 = 3.12;
- std::cout << "floor(3.12):" << floor(a5) << std::endl; // 3
- a6 = -3.12;
- std::cout << "floor(-3.12):" << floor(a6) << std::endl; // -4
- return 0;
- }
-
-
运行结果:
- pow(2,3):8
- double hypot(3,4):5
- double sqrt(4):2
- abs(-3.1):3.1
- abs(-3):3
- fabs(-3.12345):3.12345
- floor(3.12):3
- floor(-3.12):-4
在许多情况下,需要生成随机数。关于随机数生成器,有两个相关的函数。一个是 rand(),该函数只返回一个伪随机数。生成随机数之前必须先调用 srand() 函数。
下面是一个关于生成随机数的简单示例。示例中使用了 time() 函数来获取系统时间的秒数,通过调用 rand() 函数来生成随机数:
- #include
- #include
- #include
-
-
- int main()
- {
- int i, j;
-
- // 设置种子
- srand((unsigned)time(NULL));
-
- /* 生成 8 个随机数 */
- for (i = 0; i < 8; i++)
- {
- // 生成实际的随机数
- j = rand();
- std::cout << "随机数: " << j << std::endl;
- }
-
- return 0;
- }
运行结果:
- 随机数: 28916
- 随机数: 23414
- 随机数: 23467
- 随机数: 7694
- 随机数: 18261
- 随机数: 3547
- 随机数: 30756
- 随机数: 12521