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

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了&#xff0c;报错如下四、启动不了&#xff0c;解决如下 总结 问题原因 在应用中可以看到chrome&#xff0c;但是打不开(说明&#xff1a;原来的ubuntu系统出问题了&#xff0c;这个是备用的硬盘&a…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成&#xff0c;用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机&#xff1a; ​onCreate()​​ ​调用时机​&#xff1a;Activity 首次创建时调用。​…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案&#xff1a;Java 字节码技术实战分享&#xff08;仅供学习&#xff09; 一、Aspose.PDF 简介二、说明&#xff08;⚠️仅供学习与研究使用&#xff09;三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

音视频——I2S 协议详解

I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议&#xff0c;专门用于在数字音频设备之间传输数字音频数据。它由飞利浦&#xff08;Philips&#xff09;公司开发&#xff0c;以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

怎么让Comfyui导出的图像不包含工作流信息,

为了数据安全&#xff0c;让Comfyui导出的图像不包含工作流信息&#xff0c;导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo&#xff08;推荐&#xff09;​​ 在 save_images 方法中&#xff0c;​​删除或注释掉所有与 metadata …...