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

C 语言 math.h 库介绍

在 C 语言中,math.h 头文件定义了各种数学函数和一个宏,用于处理数学运算。这些函数接受 double 类型的参数,并返回 double 类型的结果。

库宏

math.h 中定义了唯一的一个宏:

  1. HUGE_VAL:当函数的结果不可表示为浮点数时,如果是因为结果的幅度太大而无法表示,则函数会设置 errnoERANGE,并返回一个由宏 HUGE_VAL 或其否定(- HUGE_VAL)表示的特定的很大的值。

库函数

下面是 math.h 中定义的各种数学函数及其描述:

  1. double acos(double x):返回以弧度表示的 x 的反余弦。
#include <stdio.h>
#include <math.h>int main() {double x = 0.5;double result = acos(x);printf("acos(%lf) = %lf radians\n", x, result);return 0;
}
  1. double asin(double x):返回以弧度表示的 x 的反正弦。
#include <stdio.h>
#include <math.h>int main() {double x = 0.5;double result = asin(x);printf("asin(%lf) = %lf radians\n", x, result);return 0;
}
  1. double atan(double x):返回以弧度表示的 x 的反正切。
#include <stdio.h>
#include <math.h>int main() {double x = 0.5;double result = atan(x);printf("atan(%lf) = %lf radians\n", x, result);return 0;
}
  1. double atan2(double y, double x):返回以弧度表示的 y/x 的反正切。
#include <stdio.h>
#include <math.h>int main() {double y = 0.5;double x = 0.5;double result = atan2(y, x);printf("atan2(%lf, %lf) = %lf radians\n", y, x, result);return 0;
}
  1. double cos(double x):返回弧度角 x 的余弦。
#include <stdio.h>
#include <math.h>int main() {double x = 0.5;double result = cos(x);printf("cos(%lf) = %lf\n", x, result);return 0;
}
  1. double cosh(double x):返回 x 的双曲余弦。
#include <stdio.h>
#include <math.h>int main() {double x = 0.5;double result = cosh(x);printf("cosh(%lf) = %lf\n", x, result);return 0;
}
  1. double sin(double x):返回弧度角 x 的正弦。
#include <stdio.h>
#include <math.h>int main() {double x = 0.5;double result = sin(x);printf("sin(%lf) = %lf\n", x, result);return 0;
}
  1. double sinh(double x):返回 x 的双曲正弦。
#include <stdio.h>
#include <math.h>int main() {double x = 0.5;double result = sinh(x);printf("sinh(%lf) = %lf\n", x, result);return 0;
}
  1. double tanh(double x):返回 x 的双曲正切。
#include <stdio.h>
#include <math.h>int main() {double x = 0.5;double result = tanh(x);printf("tanh(%lf) = %lf\n", x, result);return 0;
}
  1. double exp(double x):返回 e 的 x 次幂的值。
#include <stdio.h>
#include <math.h>int main() {double x = 2.0;double result = exp(x);printf("exp(%lf) = %lf\n", x, result);return 0;
}
  1. double frexp(double x, int *exponent):把浮点数 x 分解成尾数和指数。
#include <stdio.h>
#include <math.h>int main() {double x = 123.45;int exponent;double mantissa = frexp(x, &exponent);printf("frexp(%lf) = %lf * 2^%d\n", x, mantissa, exponent);return 0;
}
  1. double ldexp(double x, int exponent):返回 x 乘以 2 的 exponent 次幂。
#include <stdio.h>
#include <math.h>int main() {double x = 0.5;int exponent = 3;double result = ldexp(x, exponent);printf("ldexp(%lf, %d) = %lf\n", x, exponent, result);return 0;
}
  1. double log(double x):返回 x 的自然对数(基数为 e 的对数)。
#include <stdio.h>
#include <math.h>int main() {double x = 10.0;double result = log(x);printf("log(%lf) = %lf\n", x, result);return 0;
}
  1. double log10(double x):返回 x 的常用对数(基数为 10 的对数)。
#include <stdio.h>
#include <math.h>int main() {double x = 100.0;double result = log10(x);printf("log10(%lf) = %lf\n", x, result);return 0;
}
  1. double modf(double x, double *integer):返回小数部分,并设置整数部分。
#include <stdio.h>
#include <math.h>int main() {double x = 3.5;double integerPart;double fractionalPart = modf(x, &integerPart);printf("modf(%lf) = integer part: %lf, fractional part: %lf\n", x, integerPart, fractionalPart);return 0;
}
  1. double pow(double x, double y):返回 x 的 y 次幂。
#include <stdio.h>
#include <math.h>int main() {double x = 2.0;double y = 3.0;double result = pow(x, y);printf("pow(%lf, %lf) = %lf\n", x, y, result);return 0;
}
  1. double sqrt(double x):返回 x 的平方根。
#include <stdio.h>
#include <math.h>int main() {double x = 25.0;double result = sqrt(x);printf("sqrt(%lf) = %lf\n", x, result);return 0;
}
  1. double ceil(double x):返回大于或等于 x 的最小的整数值。
#include <stdio.h>
#include <math.h>int main() {double x = 4.3;double result = ceil(x);printf("ceil(%lf) = %lf\n", x, result);return 0;
}
  1. double fabs(double x):返回 x 的绝对值。
#include <stdio.h>
#include <math.h>int main() {double x = -4.5;double result = fabs(x);printf("fabs(%lf) = %lf\n", x, result);return 0;
}
  1. double floor(double x):返回小于或等于 x 的最大的整数值。
#include <stdio.h>
#include <math.h>int main() {double x = 4.7;double result = floor(x);printf("floor(%lf) = %lf\n", x, result);return 0;
}
  1. double fmod(double x, double y):返回 x 除以 y 的余数。
#include <stdio.h>
#include <math.h>int main() {double x = 10.5;double y = 3.0;double result = fmod(x, y);printf("fmod(%lf, %lf) = %lf\n", x, y, result);return 0;
}

以上是 math.h 库中所有函数的简要介绍和示例代码。这些函数涵盖了常见的数学运算,如三角函数、指数函数、对数函数、取整函数等,可以方便地在 C 语言程序中进行数学计算。

相关文章:

C 语言 math.h 库介绍

在 C 语言中&#xff0c;math.h 头文件定义了各种数学函数和一个宏&#xff0c;用于处理数学运算。这些函数接受 double 类型的参数&#xff0c;并返回 double 类型的结果。 库宏 在 math.h 中定义了唯一的一个宏&#xff1a; HUGE_VAL&#xff1a;当函数的结果不可表示为浮…...

Eigen-Matrix矩阵

Eigen-Matrix矩阵 一、概述二、矩阵的前三个模板参数三、向量四、动态维度参数五、构造函数六、索引访问器七、逗号初始化八、矩阵维度调整九、赋值和调整大小十、固定尺寸vs.动态尺寸十一、可选模板参数十二、方便预定义 一、概述 在Eigen中&#xff0c;所有矩阵和向量都是矩…...

蓝桥杯14届计算思维国赛U8组包含真题和答案

十四届蓝桥杯国赛考试计算思维 U8 组 答案在底部 第一题 以下选项中,( )是由美国计算机协会设立,对在计算机领域内作出重要贡献的个人授予的奖项 。A.图灵奖 C.菲尔兹奖 B.诺贝尔奖 D.普利策奖 第二题 希希去吃寿司。餐台上摆出了许多食物,可供大家自选。如下图所示。 …...

opencv内存溢出del释放变量 (python)

报错&#xff1a; cv2.error: OpenCV(3.4.17) D:\a\opencv-python\opencv-python\opencv\modules\core\src\alloc.cpp:73: error: (-4:Insufficient memory) Failed to allocate 12211548 bytes in function ‘cv::OutOfMemoryError’ 检查内存代码 import psutil# 获取当前进…...

【算法与数据结构】复杂度深度解析(超详解)

文章目录 &#x1f4dd;算法效率&#x1f320; 算法的复杂度&#x1f320; 时间复杂度的概念&#x1f309;大O的渐进表示法。 &#x1f320;常见复杂度&#x1f320;常见时间复杂度计算举例&#x1f309;常数阶O(1)&#x1f309;对数阶 O(logN)&#x1f309;线性阶 O(N)&#x…...

Upload-Labs-Linux1【CTF】

拿到这道题目一看&#xff0c;发现是upload靶场&#xff1b;这不简简单单吗&#xff1b;结果中间还是遇到了一些小问题 小坑总结&#xff1a;该关只识别标准php语法&#xff1a;<?php phpinfo()?>格式&#xff1b;即<?php ?> 不识别<? phpinfo()?> &…...

搜维尔科技:OptiTrack 提供了性能最佳的动作捕捉平台

OptiTrack 动画 我们的 Prime 系列相机和 Motive 软件相结合&#xff0c;产生了世界上最大的捕获量、最精确的 3D 数据和有史以来最高的相机数量。OptiTrack 提供了性能最佳的动作捕捉平台&#xff0c;具有易于使用的制作工作流程以及运行世界上最大舞台所需的深度。 无与伦比…...

java设计模式之职责链模式

基本介绍 职责链模式&#xff08;Chain of Responsibility Pattern&#xff09;为请求创建了一个接收者对象的链。这种模式对请求的发送者和接收者进行解耦。职责链模式 又叫责任链模式&#xff0c;通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求。那…...

连不上网的解决办法集--持续更新

连不上网的解决办法集–持续更新 1、有网卡&#xff0c;但网卡驱动失效 背景&#xff1a;有网络驱动但是依旧连不上网&#xff0c;只有inteV6有值&#xff0c;inte 没有值&#xff08;正常应该有个ipv4的信息&#xff09; 判断原因&#xff1a;可能是之前格式化磁盘驱动的时…...

Unity之PUN2插件实现多人联机射击游戏

目录 &#x1f4d6;一、准备工作 &#x1f4fa;二、UI界面处理 &#x1f4f1;2.1 登录UI并连接PUN2服务器 &#x1f4f1;2.2 游戏大厅界面UI &#x1f4f1;2.3 创建房间UI &#x1f4f1;2.4 进入房间UI &#x1f4f1;2.5 玩家准备状态 &#x1f4f1;2.6 加载战斗场景…...

72_Pandas.DataFrame保存并读取带pickle的系列(to_pickle、read_pickle)

72_Pandas.DataFrame保存并读取带pickle的系列&#xff08;to_pickle、read_pickle&#xff09; 要将 pandas.DataFrame、pandas.Series 对象保存为 pickle 文件&#xff0c;请使用 to_pickle() 方法&#xff0c;并使用 pd.read_pickle() 函数读取保存的 pickle 文件。 在此对…...

Redis哨兵模式和Redis Cluster模式

文章目录 &#x1f50a;博主介绍&#x1f964;本文内容Redis Cluster 模式支持自动故障转移功能吗&#xff1f;Redis Cluster 模式支持自动故障转移功能和哨兵有什么区别&#xff1f;Redis Cluster 模式和哨兵模式&#xff08;Sentinel&#xff09;在自动故障转移方面有一些关键…...

C语言第三十二弹---自定义类型:联合和枚举

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】 目录 1、联合体 1.1、联合体类型的声明 1.2、联合体的特点 1.3、相同成员的结构体和联合体对比 1.4、联合体大小的计算 1.5、联合的⼀个练习 2、枚举类型 …...

milvus upsert流程源码分析

milvus版本:v2.3.2 整体架构: Upsert 的数据流向: 1.客户端sdk发出Upsert API请求。 import numpy as np from pymilvus import (connections,Collection, )num_entities, dim 4, 3print("start connecting to Milvus") connections.connect("default",…...

QT网络通信

九、网络 基础概念 1.1 TCP/UDP TCP/UDP UDP TCP 协议相同点&#xff1a;都存在于传输层&#xff0c;全双工通信 TCP&#xff1a;全双工通信、面向连接、可靠 TCP&#xff08;即传输控制协议&#xff09;&#xff1a;是一种面向连接的传输层协议&#xff0c;它能提供高可靠性通…...

案例分析|山西某光伏发电站轨道巡检机器人解决方案

随着光伏发电技术的不断发展&#xff0c;光伏变电站配电室作为能量转换和输送的关键节点&#xff0c;承担着重要的电力分配和保护功能。然而&#xff0c;传统的人工巡检方式存在诸多问题&#xff0c;如巡检周期长、效率低、安全风险高等&#xff0c;已经无法满足光伏变电站配电…...

Apache POl

介绍 Apache POl是一个处理Miscrosoft Ofice各种文件格式的开源项目。简单来说就是&#xff0c;我们可以使用 POI 在 Java 程序中对Miscrosoft Office各种文件进行读写操作,一般情况下&#xff0c;POI都是用于操作 Excel 文件。 Apache POl 的应用场景 1.银行网银系统导出交易…...

高防服务器托管应注意什么

选择高防服务器托管主要考虑的因素&#xff1a;1.服务商的服务器大小。2.服务器的防御值大小。3.服务器机房的位置以及机房的资质。 具体内容如下&#xff1a; 1&#xff0e;服务器大小是按照U来定的&#xff0c;U是一种表示服务器外部尺寸的单位(计量单位&#xff1a;高度或厚…...

swagger-ui.html报错404,解决办法

swagger-ui.html报错404,解决办法&#xff01;现在后端开发项目中&#xff0c;为了节省时间&#xff0c;使用swagger插件&#xff0c;可以方便的快捷生成接口文档。但是如果你在请求前端页面路径比如&#xff1a;http://127.0.0.1:7777/swagger-ui.html。找不到。那是因为你的配…...

golang 函数式编程库samber/mo使用: Future

golang 函数式编程库samber/mo使用&#xff1a; Future 如果您对samber/mo库不了解&#xff0c; 请先阅读第一篇 Option 本节讲述Future的使用&#xff0c;它可以帮助我们处理异步编程问题。 示例 我们先来看看下面代码的示例&#xff0c; 注释解释了每一步的操作。 packa…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件&#xff0c;这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下&#xff0c;实现高效测试与快速迭代&#xff1f;这一命题正考验着…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...

多元隐函数 偏导公式

我们来推导隐函数 z z ( x , y ) z z(x, y) zz(x,y) 的偏导公式&#xff0c;给定一个隐函数关系&#xff1a; F ( x , y , z ( x , y ) ) 0 F(x, y, z(x, y)) 0 F(x,y,z(x,y))0 &#x1f9e0; 目标&#xff1a; 求 ∂ z ∂ x \frac{\partial z}{\partial x} ∂x∂z​、 …...

对象回调初步研究

_OBJECT_TYPE结构分析 在介绍什么是对象回调前&#xff0c;首先要熟悉下结构 以我们上篇线程回调介绍过的导出的PsProcessType 结构为例&#xff0c;用_OBJECT_TYPE这个结构来解析它&#xff0c;0x80处就是今天要介绍的回调链表&#xff0c;但是先不着急&#xff0c;先把目光…...