当前位置: 首页 > news >正文

C语言6大常用标准库 -- 4.<math.h>

目录

引言

4. C标准库--math.h

4.1 简介

4.2 库变量

4.3 库宏

4.4 库函数

 4.5 常用的数学常量


🌈你好呀!我是 程序猿

🌌 2024感谢你的陪伴与支持 ~

🚀 欢迎一起踏上探险之旅,挖掘无限可能,共同成长!


引言

        C 语言是一种通用的、面向过程式的计算机程序设计语言。1972 年,为了移植与开发 UNIX 操作系统,丹尼斯·里奇在贝尔电话实验室设计开发了 C 语言。

        C 语言是一种广泛使用的计算机语言,它与 Java 编程语言一样普及,二者在现代软件程序员之间都得到广泛使用。

        C 标准库(C Standard Library)包含了一组头文件,这些头文件提供了许多函数和宏,用于处理输入输出、字符串操作、数学计算、内存管理等常见编程任务。

4. C标准库--math.h

4.1 简介

       math.h 头文件定义了各种数学函数和一个宏。在这个库中所有可用的功能都带有一个 double 类型的参数,且都返回 double 类型的结果。

       <math.h> 是 C 标准库中的一个头文件,包含了大量用于数学运算的函数和宏。这些函数和宏提供了基本的算术运算、三角函数、指数函数、对数函数、幂函数、舍入函数等。

       <math.h> 提供了一系列的数学函数和常量,帮助程序员在 C 语言中进行各种数学计算。通过使用这些函数和常量,可以轻松实现复杂的数学运算,从而提高程序的效率和可读性。

4.2 库变量

<stdio.h> 中定义的变量类型
N0.变量 & 描述
1-

4.3 库宏

<stdio.h> 中定义的宏
N0.宏 & 描述
1

HUGE_VAL

当函数结果溢出时返回的值(正无穷大)。此宏代表一个非常大的双精度浮点数,通常用来作为某些数学函数在结果超出可表示范围时的返回值。当一个函数的结果太大以至于无法用正常的浮点数表示(即发生上溢)时,会设置 errno 为 ERANGE(范围错误),并返回 HUGE_VAL 或其负值(对于负无穷大)。

2

HUGE_VALF

当函数结果溢出时返回的值(正无穷大,浮点型)

3

HUGE_VALL

当函数结果溢出时返回的值(正无穷大,长双精度)

4

INFINITY

正无穷大

5

NAN

非数字值(Not-A-Number)

6

FP_INFINITE

表示无穷大

7

FP_NAN

表示非数字值

8

FP_NORMAL

表示正常的浮点数

9

FP_SUBNORMAL

表示次正规数

10

FP_ZERO

表示零

4.4 库函数

<stdio.h> 中定义的库函数
N0.函数 & 描述
1double acos(double x)
返回以弧度表示的 x 的反余弦。
2double asin(double x)
返回以弧度表示的 x 的反正弦。
3double atan(double x)
返回以弧度表示的 x 的反正切。
4double atan2(double y, double x)
返回以弧度表示的 y/x 的反正切。y 和 x 的值的符号决定了正确的象限。
5double cos(double x)
返回弧度角 x 的余弦。
6double cosh(double x)
返回 x 的双曲余弦。
7double sin(double x)
返回弧度角 x 的正弦。
8double sinh(double x)
返回 x 的双曲正弦。
9double tanh(double x)
返回 x 的双曲正切。
10double exp(double x)
返回 e 的 x 次幂的值。
11double frexp(double x, int *exponent)
把浮点数 x 分解成尾数和指数。返回值是尾数,并将指数存入 exponent 中。所得的值是 x = mantissa * 2 ^ exponent。
12double ldexp(double x, int exponent)
返回 x 乘以 2 的 exponent 次幂。
13double log(double x)
返回 x 的自然对数(基数为 e 的对数)。
14double log10(double x)
返回 x 的常用对数(基数为 10 的对数)。
15double modf(double x, double *integer)
返回值为小数部分(小数点后的部分),并设置 integer 为整数部分。
16double pow(double x, double y)
返回 x 的 y 次幂。
17double sqrt(double x)
返回 x 的平方根。
18double ceil(double x)
返回大于或等于 x 的最小的整数值。
19double fabs(double x)
返回 x 的绝对值。
20double floor(double x)
返回小于或等于 x 的最大的整数值。
21double fmod(double x, double y)
返回 x 除以 y 的余数。

 4.5 常用的数学常量

<stdio.h> 中常用的数学常量
M_PI3.14159265358979323846圆周率 π
M_E2.71828182845904523536自然对数的底数 e
M_LOG2E1.44269504088896340736log2(e)
M_LOG10E0.43429448190325182765log10(e)
M_LN20.69314718055994530942    ln(2)
M_LN102.30258509299404568402    ln(10)
M_PI_21.57079632679489661923    π/2
M_PI_40.78539816339744830962    π/4
M_1_PI0.31830988618379067154    1/π
M_2_PI0.63661977236758134308    2/π
M_2_SQRTPI1.12837916709551257390    2/√π
M_SQRT21.41421356237309504880√2
M_SQRT1_20.707106781186547524401/√2


  ​期待批评指正,共同进步~

相关文章:

C语言6大常用标准库 -- 4.<math.h>

目录 引言 4. C标准库--math.h 4.1 简介 4.2 库变量 4.3 库宏 4.4 库函数 4.5 常用的数学常量 &#x1f308;你好呀&#xff01;我是 程序猿 &#x1f30c; 2024感谢你的陪伴与支持 ~ &#x1f680; 欢迎一起踏上探险之旅&#xff0c;挖掘无限可能&#xff0c;共同成长&…...

【图像匹配】基于SIFT算法的图像匹配,matlab实现

博主简介&#xff1a;matlab图像代码项目合作&#xff08;扣扣&#xff1a;3249726188&#xff09; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 本次案例是基于基于SIFT算法的图像匹配&#xff0c;用matlab实现。 一、案例背景和算法介绍 本…...

C++门迷宫

目录 开头程序程序的流程图程序游玩的效果下一篇博客要说的东西 开头 大家好&#xff0c;我叫这是我58。 程序 #include <iostream> using namespace std; void printmaze(const char strmaze[11][11]) {int i 0;int ia 0;for (; i < 11; i) {for (ia 0; ia <…...

用最通俗易懂的语言和例子讲解三维点云

前言&#xff1a; 我整体的学习顺序是看的按B站那“唯一”的三维点云的视频学习的&#xff08;翻了好久几乎没有第二个...&#xff09;对于深度学习部分&#xff0c;由于本人并没有进行学习&#xff0c;所以没有深究。大多数内容都进行了自己的理解并找了很多网络的资源方便理解…...

VM虚拟机下载以及激活

传统的官网已经找不到下载了&#xff0c;这里我将下载好的放在阿里云盘&#xff0c;百度云盘太慢了&#xff0c;懂得都得 阿里云盘分享 下载好了后会是一个exe文件&#xff0c;直接双击运行就可 下载无脑下一步即可&#xff0c;这里不做介绍 下载好了后&#xff0c;需要密钥这里…...

详解Ajax与axios的区别

Ajax与Axios在Web开发中都是用于发送HTTP请求的技术&#xff0c;但它们在多个方面存在显著的差异。以下是对两者区别的详细解析&#xff1a; 1. 技术原理 Ajax&#xff1a;Asynchronous JavaScript and XML&#xff08;异步JavaScript和XML&#xff09;的缩写&#xff0c;是一…...

golang学习笔记28——golang中实现多态与面向对象

推荐学习文档 golang应用级os框架&#xff0c;欢迎stargolang应用级os框架使用案例&#xff0c;欢迎star案例&#xff1a;基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总想学习更多golang知识&#xff0c;这里有免费的golang学习笔…...

运行 xxxxApplication 时出错。命令行过长。 通过 JAR 清单或通过类路径文件缩短命令行,然后重新运行。

一、问题描述 运行 xxxxApplication 时出错。命令行过长。 通过 JAR 清单或通过类路径文件缩短命令行&#xff0c;然后重新运行。 二、问题分析 在idea中&#xff0c;运行一个springboot项目&#xff0c;在使用大量的库和依赖的时候&#xff0c;会出现报错“命令行过长”&…...

k8s自动清理pod脚本分享

检查会遇到集群节点内存消耗超过90%&#xff0c;我们可以筛选一些可以进行重启的pods&#xff0c;如脚本中涉及svc-开头的&#xff0c;进行触发即重启的shell编写。此项会涉及metrics组件需要安装。 #!/bin/bash# 设置内存使用率阈值为90% MEMORY_THRESHOLD90# 初始化一个数组…...

Go并发编程的高级技巧——请求复制与限流

解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 在一些高性能应用场景中,快速响应是非常重要的目标。例如,当一个应用需要快速响应用户的HTTP请求,或从多个副本中检索数据时,如何优化请求处理成为关键。本文将讨论如何在Go语言中,通过并发和限流机制来实现…...

网站建设模板选择哪种

在选择网站建设模板时&#xff0c;需要考虑多个因素&#xff0c;包括网站的目的、受众、内容类型以及个性化需求等。以下是一些常见的网站建设模板类型&#xff0c;以及它们的特点&#xff0c;希望对你的选择有所帮助。 企业/商务模板&#xff1a; 企业和商务网站通常需要专业、…...

【linux】kill命令

kill 命令在 Linux 和类 Unix 系统中用于向进程发送信号&#xff0c;默认情况下是发送 SIGTERM&#xff08;信号 15&#xff09;&#xff0c;请求程序终止运行。如果程序没有响应 SIGTERM 信号&#xff0c;可以使用 SIGKILL&#xff08;信号 9&#xff09;强制终止进程&#xf…...

Python基础 | 在虚拟环境中安装并在指定文件夹中打开Jupyter notebook

在虚拟环境中安装并在指定文件夹中打开Jupyter notebook 前言一、在虚拟环境下安装Jupyter notebook二、在指定路径下打开Jupyter notebook 前言 Jupyter Notebook 是一个基于 Web 的交互式计算环境&#xff0c;主要功能是将代码、文本、数学方程式、可视化和其他相关元素组合…...

1.Spring-容器-注册

一、Bean和获取Bean &#xff08;1&#xff09;创建IoC容器&#xff1a; SpringApplication.run(类名.class, args); ConfigurableApplicationContext ioc SpringApplication.run(Spring01IocApplication.class, args); &#xff08;2&#xff09;将对象注册到IoC容器中&am…...

Mapper.xml SQL大于小于号转义符

Mapper.xml中写的SQL语句&#xff0c;大于小于号字符直接写会报错&#xff0c;需要变成转义字符 对应如下&#xff1a; Mapper.xml SQL大于小于号转义符...

Linux:进程(三)——进程状态

目录 Linux源代码对进程的描述 R S D T t X Z&#xff08;进程僵尸&#xff09; 孤儿进程 Linux源代码对进程的描述 理论上把进程状态大致被分为了&#xff1a;运行、阻塞、挂起。那么&#xff0c;在操作系统中具体是如何描述状态的。&#xff08;有时候Linux内核也把…...

Effective Java 学习笔记 如何为方法编写文档

目录 方法的文档注解设计的原则 Javadoc常用的文档注释 一些注意细节 通过Javadoc命令生成h5页面 这是第8章Java方法的最后一部分&#xff0c;聚焦为导出的API编写文档注释。 如果要想使得API真正可用&#xff0c;配套的文档是必须的。Java提供了Javadoc这个文档生成工具&…...

TCP四大拥塞控制算法总结

四大算法&#xff1a;1.慢启动&#xff0c;2.拥塞避免&#xff0c;3.拥塞发生&#xff0c;4.快速恢复。 慢启动&#xff1a; 首先连接建好的开始先初始化拥塞窗口cwnd大小为1&#xff0c;表明可以传一个MSS大小的数据。 每当收到一个ACK&#xff0c;cwnd大小加一&#xff0c…...

深入解析ElasticSearch从基础概念到性能优化指南

一.引言 ElasticSearch是一个分布式的搜索和分析引擎&#xff0c;专为处理大规模的结构化和非结构化数据而设计。它建立在Apache Lucene之上&#xff0c;提供了强大的全文搜索能力、高可用性和实时分析的功能。无论是作为日志分析平台&#xff0c;还是作为数据驱动的应用程序的…...

git分支合并时忽略指定文件

分支合并忽略特定文件步骤 1.在项目根目录下cmd窗口运行以下命令 git config merge.ours.driver true2.在项目根目录下新建文件.gitattributes然后文件中写入需要忽略的文件名 mergeours, 一个文件占一行 Dockerfile mergeours /nginx/default.conf mergeours...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

Java毕业设计:WML信息查询与后端信息发布系统开发

JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发&#xff0c;实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构&#xff0c;服务器端使用Java Servlet处理请求&#xff0c;数据库采用MySQL存储信息&#xff0…...

Oracle11g安装包

Oracle 11g安装包 适用于windows系统&#xff0c;64位 下载路径 oracle 11g 安装包...

【无标题】湖北理元理律师事务所:债务优化中的生活保障与法律平衡之道

文/法律实务观察组 在债务重组领域&#xff0c;专业机构的核心价值不仅在于减轻债务数字&#xff0c;更在于帮助债务人在履行义务的同时维持基本生活尊严。湖北理元理律师事务所的服务实践表明&#xff0c;合法债务优化需同步实现三重平衡&#xff1a; 法律刚性&#xff08;债…...

绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化

iOS 应用的发布流程一直是开发链路中最“苹果味”的环节&#xff1a;强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说&#xff0c;这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发&#xff08;例如 Flutter、React Na…...