当前位置: 首页 > 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…...

【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 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测

uniapp 中配置 配置manifest 文档&#xff1a;manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号&#xff1a;4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...

GO协程(Goroutine)问题总结

在使用Go语言来编写代码时&#xff0c;遇到的一些问题总结一下 [参考文档]&#xff1a;https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现&#xff1a; 今天在看到这个教程的时候&#xff0c;在自己的电…...

Linux系统部署KES

1、安装准备 1.版本说明V008R006C009B0014 V008&#xff1a;是version产品的大版本。 R006&#xff1a;是release产品特性版本。 C009&#xff1a;是通用版 B0014&#xff1a;是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存&#xff1a;1GB 以上 硬盘&#xf…...

深入理解Optional:处理空指针异常

1. 使用Optional处理可能为空的集合 在Java开发中&#xff0c;集合判空是一个常见但容易出错的场景。传统方式虽然可行&#xff0c;但存在一些潜在问题&#xff1a; // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...

LangFlow技术架构分析

&#x1f527; LangFlow 的可视化技术栈 前端节点编辑器 底层框架&#xff1a;基于 &#xff08;一个现代化的 React 节点绘图库&#xff09; 功能&#xff1a; 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...

图解JavaScript原型:原型链及其分析 | JavaScript图解

​​ 忽略该图的细节&#xff08;如内存地址值没有用二进制&#xff09; 以下是对该图进一步的理解和总结 1. JS 对象概念的辨析 对象是什么&#xff1a;保存在堆中一块区域&#xff0c;同时在栈中有一块区域保存其在堆中的地址&#xff08;也就是我们通常说的该变量指向谁&…...

GAN模式奔溃的探讨论文综述(一)

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