C语言实例_math.h库函数功能及其用法详解

news2024/9/23 9:31:14

一、前言

数学在计算机编程中扮演着至关重要的角色,C语言的math.h头文件提供了一系列的函数和工具,用于数学计算和常用数学函数的实现。这些函数包括数值运算、三角函数、指数对数函数等,为开发人员提供了强大的数学处理能力。本文将对math.h头文件中的所有函数进行全面介绍,包括功能和使用方法,以帮助大家更好地理解和利用该头文件。

在 C 语言中,math.h 头文件提供了许多与数学运算相关的函数和宏。以下是该头文件中常用的函数和宏及其功能的详细介绍:

image-20230816115046273

二、函数功能介绍

【1】基本数学运算函数

  • double sin(double x):计算正弦函数的值。
  • double cos(double x):计算余弦函数的值。
  • double tan(double x):计算正切函数的值。
  • double asin(double x):计算反正弦函数的值。
  • double acos(double x):计算反余弦函数的值。
  • double atan(double x):计算反正切函数的值。
  • double atan2(double y, double x):计算给定直角坐标系中点(x,y)的反正切函数值。
  • double sinh(double x):计算双曲正弦函数的值。
  • double cosh(double x):计算双曲余弦函数的值。
  • double tanh(double x):计算双曲正切函数的值。
  • double exp(double x):计算指数函数的值。
  • double log(double x):计算自然对数函数的值。
  • double log10(double x):计算以 10 为底的对数函数的值。
  • double pow(double x, double y):计算 x 的 y 次幂。
  • double sqrt(double x):计算平方根函数的值。
  • double ceil(double x):向上取整,返回不小于 x 的最小整数值。
  • double floor(double x):向下取整,返回不大于 x 的最大整数值。
  • double fabs(double x):计算绝对值函数的值。

【2】其他常用函数

  • double fmod(double x, double y):计算 x 除以 y 的余数。
  • double round(double x):四舍五入,返回最接近 x 的整数。
  • double trunc(double x):截断,返回 x 的整数部分。
  • double modf(double x, double* intpart):将 x 拆分为整数部分和小数部分,并将整数部分存储在 intpart 中。
  • double hypot(double x, double y):计算两个参数的平方和的平方根。
  • double ldexp(double x, int exp):计算 x 乘以 2 的指定次幂。
  • double frexp(double value, int* exp):将 value 分解为尾数和指数,并将指数存储在 exp 中。
  • int isnan(double x):检查 x 是否是非数值(NaN)。
  • int isinf(double x):检查 x 是否是无穷大。
  • int isfinite(double x):检查 x 是否是有限数。
  • double copysign(double x, double y):返回与 x 绝对值相同但符号与 y 相同的值。
  • double erf(double x):计算误差函数的值。
  • double erfc(double x):计算余误差函数的值。

【3】宏、常量和特殊值

除了上述函数,math.h 头文件还定义了一些宏、常量和特殊值,例如:

  • M_PIM_E 等代表数学常量。
  • 常量INFINITYNAN 等表示特殊数值的常量。
  • 特殊值HUGE_VALHUGE_VALFHUGE_VALL 等特殊数值。

这些函数和宏可以在 C 语言中进行各种数学运算和数值处理。

三、用法示例

【1】基本数学运算函数:

#include <stdio.h>
#include <math.h>

int main() {
    double x = 1.5;
    double y = 2.0;

    double result1 = sin(x);
    printf("sin(%.2f) = %.2f\n", x, result1);

    double result2 = pow(x, y);
    printf("%.2f^%.2f = %.2f\n", x, y, result2);

    int result3 = ceil(x);
    printf("ceil(%.2f) = %d\n", x, result3);

    return 0;
}

输出结果:

sin(1.50) = 0.99
1.50^2.00 = 2.25
ceil(1.50) = 2

【2】其他常用函数:

#include <stdio.h>
#include <math.h>

int main() {
    double x = 3.7;
    double intpart;
    double fractpart;

    fractpart = modf(x, &intpart);
    printf("x = %.2f, integer part = %.2f, fractional part = %.2f\n", x, intpart, fractpart);

    double distance = hypot(3.0, 4.0);
    printf("Distance from origin to point (3, 4) is %.2f\n", distance);

    double value = 1234.56;
    int exp;
    double mantissa = frexp(value, &exp);
    printf("Value = %.2f, mantissa = %.2f, exponent = %d\n", value, mantissa, exp);

    return 0;
}

输出结果:

x = 3.70, integer part = 3.00, fractional part = 0.70
Distance from origin to point (3, 4) is 5.00
Value = 1234.56, mantissa = 0.97, exponent = 11

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1353597.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

字符编码转换

宽窄字符和字符编码的关系 多字节(窄)字符&#xff1a;在C/C中&#xff0c;char是一种数据类型&#xff0c;规定sizeof(char)1&#xff0c;即一个char占用一个字节&#xff0c;1Byte8bit。并没有规定一个char就要与ASCII对应&#xff0c;不过&#xff0c;通常情况下char值与AS…

LeetCode 每日一题 Day 32 ||递归单调栈

2487. 从链表中移除节点 给你一个链表的头节点 head 。 移除每个右侧有一个更大数值的节点。 返回修改后链表的头节点 head 。 示例 1&#xff1a; 输入&#xff1a;head [5,2,13,3,8] 输出&#xff1a;[13,8] 解释&#xff1a;需要移除的节点是 5 &#xff0c;2 和 3 。…

【RocketMQ每日一问】RocketMQ SQL92过滤用法以及原理?

1.生产端 public class SQLProducer {public static int count 10;public static String topic "xiao-zou-topic";public static void main(String[] args) {DefaultMQProducer producer MQUtils.createLocalProducer();IntStream.range(0, count).forEach(i -&g…

【算法】使用位运算解算法题(C++)

文章目录 0. 位运算 基本介绍1. 位运算基本使用 连带题目191.位1的个数338.比特位计数461.汉明距离136.只出现一次的数字260.只出现一次的数字III 2. 使用位运算解决算法题面试题01.01.判定字符是否唯一371.两整数之和137.只出现一次的数字II面试题17.04.消失的数字面试题17.1…

2023年12月GESP C++七级编程题转Python真题解析

七、2023年12月GESP C(Python)七级编程题 2023年12月GESP Python最高六级&#xff0c;但C与Python同级编程题相同。本篇引用2023年12月GESPC七级编程题&#xff0c;用Python实现。 【七级编程题1】 【试题名称】&#xff1a;商品交易 时间限制&#xff1a;1.0 s 内存限制&…

上海AI lab大模型微调

教程链接&#xff1a;InternLM学习教程链接 命令行演示结果&#xff1a; web演示结果

SpringBoot的基础配置

问题导入 入门案例中没有引入spring-webmvc等依赖包&#xff0c;没有配置Tomcat服务器&#xff0c;为什么能正常启动&#xff1f;我们没有配置端口号&#xff0c;为什么端口是8080&#xff1f; 起步依赖 starter SpringBoot中常见项目名称&#xff0c;定义了当前项目使用的所…

TB-C/C++

1.main函数之前之后执行的代码 设置栈指针初始化静态变量和全局变量&#xff08;.data段内容&#xff0c;已初始化且不为0&#xff09;赋初值&#xff08;.bss段内容&#xff0c;未初始化的全局变量和静态变量&#xff09;传参&#xff08;argc,argv&#xff09;atexit() 在…

【C++】HP-Socket(一): 下载、Linux上编译、Windows远程编译Linux版本

1、简介 国产、高性能、跨平台网络通信框架。 作者于2024-01-01更新了Release版本v5.9.4&#xff0c;辛苦了&#xff0c;向作者致敬&#xff01; 源码下载&#xff1a; https://gitee.com/mirrors/hp-socket https://github.com/ldcsaa/HP-Socket 2、编译 2.1 在Linux上编…

nifi详细介绍--一款开箱即用、功能强大可靠,可用于处理和分发数据的大数据组件

目录 目录 一、引言 二、NiFi 的历史背景介绍 三、NiFi 是什么&#xff1f; 核心特性 应用领域 四、NIFI 入门 五 、NiFi 工作流程 六、实际应用场景 七、优势总结 一、引言 NiFi&#xff08;Apache NiFi&#xff09;&#xff0c;全名为“Niagara Files”&#xff0…

[SDCTF 2022]jawt that down!

[SDCTF 2022]jawt that down! 打开题目&#xff0c;存在登录框 初步测试发现并不存在sql注入漏洞&#xff0c;只好扫一下目录发现有/js的路径 我们进一步扫描 访问/js/login.js看一下&#xff0c;搜索得到用户名和密码 AzureDiamond hunter2登陆成功后发现有个N 点进去提示t…

mysql生成数据库字典文档

项目交付离不开项目数据库字典文档。下面用python轻松生成交付文档字典。 一 生成doc文档数据库字典效果&#xff1a; 1 生成doc文件&#xff0c;如下图&#xff1a; 2 打开文件字典格式内容 &#xff0c;如下图&#xff1a; 二 python生成doc字典文档代码 生成doc数据库字典…

机器学习-基于Word2vec搜狐新闻文本分类实验

机器学习-基于Word2vec搜狐新闻文本分类实验 实验介绍 Word2vec是一群用来产生词向量的相关模型&#xff0c;由Google公司在2013年开放。Word2vec可以根据给定的语料库&#xff0c;通过优化后的训练模型快速有效地将一个词语表达成向量形式&#xff0c;为自然语言处理领域的应…

FA发放云桌面并与FC对接

&#xff08;7&#xff09;分配桌面&#xff08;该组为刚刚创建的域名用户和组&#xff09;&#xff0c;确认无误&#xff0c;直接发放 &#xff08;8&#xff09;可在任务中心查看发放的进度 3、FA的登录流程 &#xff08;1&#xff09;登录WI&#xff1a;客户端访问VLB&…

Java解析xml文档,判断对象是一个json是jsonArray还是jsonObject

有一篇xml文档&#xff0c;如下&#xff1a; 现在需要解析出其中的内容&#xff0c;首先需要明确的是&#xff0c;文档是由一个个的标签嵌套形成的&#xff0c;例如整个xml文件是由许多DescriptorRecord标签构成&#xff0c; <DescriptorRecord DescriptorClass "1&…

【数据结构】二叉树(一)——树和二叉树的概念及结构

前言: 本篇博客主要了解什么是树&#xff0c;什么是二叉树&#xff0c;以及他们的概念和结构。 文章目录 一、树的概念及结构1.1 树的基本概念1.2 树的相关特征1.3 树的实现 二、二叉树的概念及性质2.1 二叉树的概念2.2 二叉树的性质 一、树的概念及结构 1.1 树的基本概念 树&…

用邮件及时获取变更的公网IP--------python爬虫+打包成exe文件

参考获取PC机公网IP并发送至邮箱 零、找一个发送邮件的邮箱 本文用QQ邮箱为发送邮箱&#xff0c;网易等邮箱一般也有这个功能&#xff0c;代码也是通用的。 第一步&#xff1a;在设置中找到账户&#xff0c;找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务&#xff0c;点击获…

2024.1.3每日一题

LeetCode每日一题 2487.从链表中移除节点 2487. 从链表中移除节点 - 力扣&#xff08;LeetCode&#xff09; 题目描述 给你一个链表的头节点 head 。 移除每个右侧有一个更大数值的节点。 返回修改后链表的头节点 head 。 示例 1&#xff1a; 输入&#xff1a;head [5,…

全国计算机等级考试| 二级Python | 真题及解析(10)

一、选择题 1.要实现将实数型变量a的值保留三位小数,以下python可以实现的是( ) A.a%0.001 B.a//0.001 C.round(a,3) D.round(3,a) 2.在Python中要交换变量a和b中的值,应使用的语句组是( )。 A…

栈实现前缀表达式的计算

前缀表达式计算 过程分析 中缀表达式&#xff1a;&#xff08;1 5&#xff09;*3 > 前缀表达式&#xff1a;*153 &#xff08;可参考这篇文章&#xff1a;中缀转前缀&#xff09; 第一步&#xff1a;从右至左扫描前缀表达式&#xff08;已存放在字符数组中&#xff09;&a…