简要介绍C语言与c++共有的数学函数

目录

C语言与C++共有的数学函数(介绍格式为:函数原型+示例(C++版))

[1. 基本数学运算](#1. 基本数学运算)

[2. 三角函数(这类函数不好用)](#2. 三角函数(这类函数不好用))

[3. 反三角函数(函数返回值为弧度,这类函数不好用)](#3. 反三角函数(函数返回值为弧度,这类函数不好用))

[4. 对数函数](#4. 对数函数)

[5. 取整函数](#5. 取整函数)

C++特有的数学函数

收藏加关注,观看不迷路


C语言和C++都提供了丰富的数学函数,这些函数主要定义在 <math.h>(C语言)和 <cmath>(C++)头文件中。以下分别介绍C语言与C++共有的数学函数,以及C++特有的数学函数。


C语言与C++共有的数学函数(介绍格式为:函数原型+示例(C++版))

这些函数在C语言和C++中都可以使用,功能和用法完全一致 。它们主要定义在C语言的 <math.h> 和C++的 <cmath> 头文件中。

1. 基本数学运算
  • 绝对值

    • int abs(int x);------计算整数的绝对值。形参为int型,返回值为int 型

    • double fabs(double x);------计算浮点数的绝对值。形参为double型,返回值为double型

    • 示例:

      cpp 复制代码
      #include<iostream>
      #include <cmath>
      int main() {
          int a = -5;
          double b = -3.14;
          std::cout  << abs(a) << std::endl;
          std::cout  << fabs(b) << std::endl;
          return 0;
      }
      
      输出
      5
      3.14
  • 平方根

    • double sqrt(double x);------计算平方根。形参为double型,返回值为double型

    • 示例:

      cpp 复制代码
      #include<iostream>
      #include <cmath>
      int main() {
          int a = 25.0;
          std::cout  << sqrt(a) << std::endl;
          return 0;
      }
      
      输出
      5
  • 立方根

    • double cbrt(double x);------计算立方根。形参为double型,返回值为double型

    • 示例:

      cpp 复制代码
      #include<iostream>
      #include <cmath>
      int main() {
          int a = 125.0;
          std::cout  << cbrt(a) << std::endl;
          return 0;
      }
      输出
      5
  • 幂运算

    • double pow(double base, double exp);------计算。形参为double型,返回值为double型

    • 示例:

      cpp 复制代码
      #include<iostream>
      #include <cmath>
      int main() {
          int a = 5.0;
          std::cout  << pow(a,3) << std::endl;
          return 0;
      }
      
      输出
      125
2. 三角函数(这类函数不好用)
  • 正弦

    • double sin(double x);------计算 sin(x),其中 x 是弧度。形参为double型,返回值为double型

    • 示例:

      cpp 复制代码
      #include <cmath>
      int main() {
          double angle = M_PI / 2; // 90度
          std::cout << "sin(" << angle << ") = " << sin(angle) << std::endl;
          return 0;
      }
  • 余弦

    • double cos(double x);------计算 cos(x),其中 x 是弧度。形参为double型,返回值为double型

    • 示例:

      cpp 复制代码
      #include <cmath>
      int main() {
          double angle = M_PI; // 180度
          std::cout << "cos(" << angle << ") = " << cos(angle) << std::endl;
          return 0;
      }
  • 正切

    • double tan(double x);------计算 tan(x),其中 x 是弧度。形参为double型,返回值为double型

    • 示例:

      #include <cmath>
      int main() {
          double angle = M_PI / 4; // 45度
          std::cout << "tan(" << angle << ") = " << tan(angle) << std::endl;
          return 0;
      }
      
3. 反三角函数(函数返回值为弧度,这类函数不好用)
  • 反正弦

    • double asin(double x);------计算 arcsin(x),返回值为弧度。形参为double型,返回值为double型

    • 详细运用示例:
cpp 复制代码
#include <iostream> // 包含标准输入输出流库
#include <iomanip>  // 包含用于格式化输出的库,如setprecision
#include <cmath>    // 包含数学函数库,如asin
#define PI 3.14159  // 定义圆周率PI的值为3.14159
using namespace std; // 使用标准命名空间

int main() {
    double A; // 定义一个双精度浮点型变量A,用于存储输入的正弦值
    cin >> A; // 从标准输入读取一个值到变量A中

    // 使用asin函数计算A的反正弦值,结果以弧度为单位
    double B = asin(A); 

    // 将弧度值B转换为度数,并设置输出精度为小数点后两位
    // asin返回的是弧度值,通过乘以180/PI将其转换为度数
    cout << setprecision(2) << B * 180 / PI << endl;

    return 0; // 程序正常结束
}

输入  1
输出  90

关键点解释

  • asin 函数

    • asin 是反正弦函数,输入范围为 [−1,1],输出范围为 [−π/2,π/2] 弧度。

    • 如果输入的值不在 [−1,1] 范围内,程序会报错。

  • 弧度转度数

    • 弧度和度数的转换公式是:

      度数=弧度×π/180

    • 在代码中,B * 180 / PI 就是按照这个公式进行转换的。

  • setprecision(2)

    • 这是 <iomanip> 库提供的功能,用于设置输出的小数精度。这里设置为保留两位小数。
  • 示例运行

    假设用户输入 0.5,程序的运行过程如下:

  • 输入:0.5

  • asin(0.5) 的结果是 6π​ 弧度(约等于 0.5236 弧度)。

  • 将弧度转换为度数:

    0.5236×π/180≈30.00

  • 输出:30.00

  • 输入范围

用户输入的值 A 必须在 [−1,1] 范围内,否则 asin 函数会抛出错误。

  • 反余弦

    • double acos(double x);------计算 arccos(x),返回值为弧度。形参为double型,返回值为double型

    • 示例:

      cpp 复制代码
      #include <cmath>
      int main() {
          double value = 0.5;
          std::cout << "acos(" << value << ") = " << acos(value) << " radians" << std::endl;
          return 0;
      }
  • 反正切

    • double atan(double x);------计算 arctan(x),返回值为弧度。形参为double型,返回值为double型

    • 示例:

      cpp 复制代码
      #include <cmath>
      int main() {
          double value = 1.0;
          std::cout << "atan(" << value << ") = " << atan(value) << " radians" << std::endl;
          return 0;
      }
4. 对数函数
  • 自然对数

    • double log(double x);------计算 ln(x)。形参为double型,返回值为double型

    • 示例:

      cpp 复制代码
      #include<iostream>
      #include <cmath>
      int main() {
          double num = 10.0;
          std::cout << "log(" << num << ") = " << log(num) << std::endl;
          return 0;
      }
      
      
      输出   log(10) = 2.30259   
  • 常用对数

    • double log10(double x);------计算 log10​(x)。形参为double型,返回值为double型

    • 示例:

      cpp 复制代码
      #include<iostream>
      #include <cmath>
      int main() {
          double num = 100.0;
          std::cout << "log10(" << num << ") = " << log10(num) << std::endl;
          return 0;
      }
      
      输出  log10(100) = 2    
5. 取整函数
  • 向上取整(即取小于给定数值+1的最大整数。)

    • double ceil(double x);------向上取整。形参为double型,返回值为double型

    • 示例:

      cpp 复制代码
      #include<iostream>
      #include <cmath>
      int main() {
          double num = 3.14;
          std::cout << "ceil(" << num << ") = " << ceil(num) << std::endl;
          return 0;
      }
      
      输出  ceil(3.14) = 4 
  • 向下取整(即取不大于给定数值的最大整数。)

    • double floor(double x);------向下取整。形参为double型,返回值为double型

    • 示例:

      cpp 复制代码
      #include<iostream>
      #include <cmath>
      int main() {
          double num = 3.14;
          std::cout << "floor(" << num << ") = " << floor(num) << std::endl;
          return 0;
      }
      
      输出  floor(3.14) = 3 
  • 四舍五入

    • double round(double x);------四舍五入。形参为double型,返回值为double型

    • 示例:

      cpp 复制代码
      #include<iostream>
      #include <cmath>
      int main() {
          double num ;
          std::cout  << round(num) << std::endl;
          return 0;
      }
      
      输入  3.44
      输出  3
      
      
      输入  3.54
      输出  4

C++特有的数学函数

C++在继承C语言的基础上,增加了一些新的数学函数,主要用于更复杂的数学运算和类型扩展。

  • 提取浮点数的整数部分(这个函数多此一举,功能与向下取整函数没区别)

    • double trunc(double x);------提取浮点数的整数部分。

    • 示例:

      cpp 复制代码
      #include<iostream>
      #include <cmath>
      int main() {
          double num = 3.14;
          std::cout << "trunc(" << num << ") = " << trunc(num) << std::endl;
          return 0;
      }
      
      输出   trunc(3.14) = 3   

收藏加关注,观看不迷路

相关推荐
像素猎人1 小时前
C语言按位取反【~】详解,含原码反码补码的0基础讲解【原码反码补码严格意义上来说属于计算机组成原理的范畴,不过这也是学好编程初级阶段的必修课】
c语言·开发语言
Xiao Xiangζั͡ޓއއ4 小时前
程序诗篇里的灵动笔触:指针绘就数据的梦幻蓝图<5>
c语言·开发语言·程序人生·学习方法·改行学it
一期一祈^6 小时前
C++SLT(三)——list
开发语言·c++·list
tan180°7 小时前
DS图(中)(19)
开发语言·数据结构·c++·算法·深度优先·图论
CodeClimb7 小时前
【华为OD-E卷 - 115 数组组成的最小数字 100分(python、java、c++、js、c)】
java·javascript·c++·python·华为od
CodeClimb7 小时前
【华为OD-E卷 - 114 找最小数 100分(python、java、c++、js、c)】
java·javascript·c++·python·华为od
小姚也要变强7 小时前
结构体排序 C++ 蓝桥杯
数据结构·c++·算法·蓝桥杯
余辉zmh7 小时前
【贪心算法篇】:“贪心”之旅--算法练习题中的智慧与策略(三)
数据结构·c++·算法·leetcode·贪心算法
小姚也要变强7 小时前
后缀表达式 C++ 蓝桥杯 栈
数据结构·c++·算法·蓝桥杯