C 语言 math.h 库介绍
在 C 语言中,math.h 头文件定义了各种数学函数和一个宏,用于处理数学运算。这些函数接受 double 类型的参数,并返回 double 类型的结果。
库宏
在 math.h 中定义了唯一的一个宏:
HUGE_VAL:当函数的结果不可表示为浮点数时,如果是因为结果的幅度太大而无法表示,则函数会设置errno为ERANGE,并返回一个由宏HUGE_VAL或其否定(- HUGE_VAL)表示的特定的很大的值。
库函数
下面是 math.h 中定义的各种数学函数及其描述:
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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 语言中,math.h 头文件定义了各种数学函数和一个宏,用于处理数学运算。这些函数接受 double 类型的参数,并返回 double 类型的结果。 库宏 在 math.h 中定义了唯一的一个宏: HUGE_VAL:当函数的结果不可表示为浮…...
Eigen-Matrix矩阵
Eigen-Matrix矩阵 一、概述二、矩阵的前三个模板参数三、向量四、动态维度参数五、构造函数六、索引访问器七、逗号初始化八、矩阵维度调整九、赋值和调整大小十、固定尺寸vs.动态尺寸十一、可选模板参数十二、方便预定义 一、概述 在Eigen中,所有矩阵和向量都是矩…...
蓝桥杯14届计算思维国赛U8组包含真题和答案
十四届蓝桥杯国赛考试计算思维 U8 组 答案在底部 第一题 以下选项中,( )是由美国计算机协会设立,对在计算机领域内作出重要贡献的个人授予的奖项 。A.图灵奖 C.菲尔兹奖 B.诺贝尔奖 D.普利策奖 第二题 希希去吃寿司。餐台上摆出了许多食物,可供大家自选。如下图所示。 …...
opencv内存溢出del释放变量 (python)
报错: 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# 获取当前进…...
【算法与数据结构】复杂度深度解析(超详解)
文章目录 📝算法效率🌠 算法的复杂度🌠 时间复杂度的概念🌉大O的渐进表示法。 🌠常见复杂度🌠常见时间复杂度计算举例🌉常数阶O(1)🌉对数阶 O(logN)🌉线性阶 O(N)&#x…...
Upload-Labs-Linux1【CTF】
拿到这道题目一看,发现是upload靶场;这不简简单单吗;结果中间还是遇到了一些小问题 小坑总结:该关只识别标准php语法:<?php phpinfo()?>格式;即<?php ?> 不识别<? phpinfo()?> &…...
搜维尔科技:OptiTrack 提供了性能最佳的动作捕捉平台
OptiTrack 动画 我们的 Prime 系列相机和 Motive 软件相结合,产生了世界上最大的捕获量、最精确的 3D 数据和有史以来最高的相机数量。OptiTrack 提供了性能最佳的动作捕捉平台,具有易于使用的制作工作流程以及运行世界上最大舞台所需的深度。 无与伦比…...
java设计模式之职责链模式
基本介绍 职责链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式对请求的发送者和接收者进行解耦。职责链模式 又叫责任链模式,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求。那…...
连不上网的解决办法集--持续更新
连不上网的解决办法集–持续更新 1、有网卡,但网卡驱动失效 背景:有网络驱动但是依旧连不上网,只有inteV6有值,inte 没有值(正常应该有个ipv4的信息) 判断原因:可能是之前格式化磁盘驱动的时…...
Unity之PUN2插件实现多人联机射击游戏
目录 📖一、准备工作 📺二、UI界面处理 📱2.1 登录UI并连接PUN2服务器 📱2.2 游戏大厅界面UI 📱2.3 创建房间UI 📱2.4 进入房间UI 📱2.5 玩家准备状态 📱2.6 加载战斗场景…...
72_Pandas.DataFrame保存并读取带pickle的系列(to_pickle、read_pickle)
72_Pandas.DataFrame保存并读取带pickle的系列(to_pickle、read_pickle) 要将 pandas.DataFrame、pandas.Series 对象保存为 pickle 文件,请使用 to_pickle() 方法,并使用 pd.read_pickle() 函数读取保存的 pickle 文件。 在此对…...
Redis哨兵模式和Redis Cluster模式
文章目录 🔊博主介绍🥤本文内容Redis Cluster 模式支持自动故障转移功能吗?Redis Cluster 模式支持自动故障转移功能和哨兵有什么区别?Redis Cluster 模式和哨兵模式(Sentinel)在自动故障转移方面有一些关键…...
C语言第三十二弹---自定义类型:联合和枚举
✨个人主页: 熬夜学编程的小林 💗系列专栏: 【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 协议相同点:都存在于传输层,全双工通信 TCP:全双工通信、面向连接、可靠 TCP(即传输控制协议):是一种面向连接的传输层协议,它能提供高可靠性通…...
案例分析|山西某光伏发电站轨道巡检机器人解决方案
随着光伏发电技术的不断发展,光伏变电站配电室作为能量转换和输送的关键节点,承担着重要的电力分配和保护功能。然而,传统的人工巡检方式存在诸多问题,如巡检周期长、效率低、安全风险高等,已经无法满足光伏变电站配电…...
Apache POl
介绍 Apache POl是一个处理Miscrosoft Ofice各种文件格式的开源项目。简单来说就是,我们可以使用 POI 在 Java 程序中对Miscrosoft Office各种文件进行读写操作,一般情况下,POI都是用于操作 Excel 文件。 Apache POl 的应用场景 1.银行网银系统导出交易…...
高防服务器托管应注意什么
选择高防服务器托管主要考虑的因素:1.服务商的服务器大小。2.服务器的防御值大小。3.服务器机房的位置以及机房的资质。 具体内容如下: 1.服务器大小是按照U来定的,U是一种表示服务器外部尺寸的单位(计量单位:高度或厚…...
swagger-ui.html报错404,解决办法
swagger-ui.html报错404,解决办法!现在后端开发项目中,为了节省时间,使用swagger插件,可以方便的快捷生成接口文档。但是如果你在请求前端页面路径比如:http://127.0.0.1:7777/swagger-ui.html。找不到。那是因为你的配…...
golang 函数式编程库samber/mo使用: Future
golang 函数式编程库samber/mo使用: Future 如果您对samber/mo库不了解, 请先阅读第一篇 Option 本节讲述Future的使用,它可以帮助我们处理异步编程问题。 示例 我们先来看看下面代码的示例, 注释解释了每一步的操作。 packa…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
多元隐函数 偏导公式
我们来推导隐函数 z z ( x , y ) z z(x, y) zz(x,y) 的偏导公式,给定一个隐函数关系: F ( x , y , z ( x , y ) ) 0 F(x, y, z(x, y)) 0 F(x,y,z(x,y))0 🧠 目标: 求 ∂ z ∂ x \frac{\partial z}{\partial x} ∂x∂z、 …...
对象回调初步研究
_OBJECT_TYPE结构分析 在介绍什么是对象回调前,首先要熟悉下结构 以我们上篇线程回调介绍过的导出的PsProcessType 结构为例,用_OBJECT_TYPE这个结构来解析它,0x80处就是今天要介绍的回调链表,但是先不着急,先把目光…...
