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…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...

GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...
Linux系统部署KES
1、安装准备 1.版本说明V008R006C009B0014 V008:是version产品的大版本。 R006:是release产品特性版本。 C009:是通用版 B0014:是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存:1GB 以上 硬盘…...
深入理解Optional:处理空指针异常
1. 使用Optional处理可能为空的集合 在Java开发中,集合判空是一个常见但容易出错的场景。传统方式虽然可行,但存在一些潜在问题: // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...
LangFlow技术架构分析
🔧 LangFlow 的可视化技术栈 前端节点编辑器 底层框架:基于 (一个现代化的 React 节点绘图库) 功能: 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...

图解JavaScript原型:原型链及其分析 | JavaScript图解
忽略该图的细节(如内存地址值没有用二进制) 以下是对该图进一步的理解和总结 1. JS 对象概念的辨析 对象是什么:保存在堆中一块区域,同时在栈中有一块区域保存其在堆中的地址(也就是我们通常说的该变量指向谁&…...

GAN模式奔溃的探讨论文综述(一)
简介 简介:今天带来一篇关于GAN的,对于模式奔溃的一个探讨的一个问题,帮助大家更好的解决训练中遇到的一个难题。 论文题目:An in-depth review and analysis of mode collapse in GAN 期刊:Machine Learning 链接:...