C语言标准库(常用函数)详解(含示例)数学公式:math.h

news2024/9/23 7:31:35

目录

math.h的介绍

math.h的概述

库中定义的宏:

HUGE_VAL

库函数(只讲解常用函数)

三角函数

示例代码

输出

双曲函数

示例代码

输出

指数和对数函数(只含常用函数)

示例代码

 输出

常用函数pow,sprt,cbrt,hypot,fabs,abs

代码示例

输出


math.h的介绍

math.h一般见于C,C++程序设计,#include<math.h>是包含头文件的意思,.h是扩展名(header file),再使用math.h里的函数时,都必须先包含头文件,这一句声明了本程序要用到标准库中的math.h文件;math.h头文件中声明了常用的一些数学运算公式,把比如求绝对值,开平方,乘方等等。

math.h的概述

math.头文件定义了各种数学里常用的公式和一个宏;

库中定义的宏:

HUGE_VAL

当函数的结果不可以表示为浮点数时。如果是因为结果的幅度太大以致于无法表示,则函数会设置 errno ERANGE 来表示范围错误,并返回一个由宏 HUGE_VAL 或者它的否定(- HUGE_VAL)命名的一个特定的很大的值。
如果结果的幅度太小,则会返回零值。在这种情况下,error 可能会被设置为 ERANGE,也有可能不会被设置为 ERANGE

库函数(只讲解常用函数)

三角函数

三角函数
函数名作用
sin(x)x的正弦值;值域 [-1,1]

cos(x)

x的余弦值;值域 [-1,1]
tan(x)x的正切值;值域(+∞,-∞)
asin(x)

计算反正弦;值域 [-PI/2,PI/2];x∈ [-1,1]

acos(x)计算反余弦;值域 [0,PI/2];x∈ [-1,1]
atan(x)计算反正切;  值域 [-PI/2,PI/2]
atan2(y,x)计算具有两个参数的反正切线,值域为 [-PI,PI]

示例代码

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

int main()
{
	double pi = 3.141592654;
	printf("%f\n", sin(pi / 2.0));
	printf("%f\n", cos(pi));
	printf("%f\n", tan(pi / 4.0));
	printf("%f\n", asin(0.5));
	printf("%f\n", acos(0));
	printf("%f\n", atan(1));
	printf("%f\n", atan2(1, 2));

	return 0;
}

输出

双曲函数

双曲函数
sinh计算双曲正弦
cosh计算双曲余弦
tanh计算双曲正切
asinh计算反双曲正弦
acosh计算反双曲余弦
atanh计算反双曲正切

示例代码

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

int main()
{
	double pi = 3.141592654;
	printf("%f\n", sinh(1.23));
	printf("%f\n", cosh(1.3));
	printf("%f\n", tanh(1));
	printf("%f\n", asinh(2));
	printf("%f\n", acosh(3.2));

	return 0;
}

输出

指数和对数函数(只含常用函数)

指数和对数函数
exp(x)计算底数为e的指数函数
ldexp(x,n)计算 x*2^n的值
log(x)计算自然对数ln(x),其中x>0
log10(x)计算以10为底的对数,其中x>0
exp2(x)计算底数为2的指数函数
expm1(x)计算e的x次减一
log2(x)计算以2为底的对数

示例代码

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

int main()
{
	printf("%f\n",exp(2));         //e的2次方
	printf("%f\n",ldexp(3,2));     //3*2的2次方
	printf("%f\n",log(2.718));     //loge 2.718
	printf("%f\n",log10(100));     //log10 100 
	printf("%f\n",exp2(10));       //2的10次方
	printf("%f\n",expm1(2));       //e的2次方-1
	printf("%f\n",log2(1024));     //log2 1024

	
	return 0;
}

 输出

常用函数pow,sprt,cbrt,hypot,fabs,abs

pow,sqrt,cbrt,hypot函数
pow(x,y)计算x^y的值
sqrt(x)计算x的平方根
cbrt(x)计算x的立方根
hypot(x,y)计算(x^2+y^2)的平方根,常用于计算三角形的斜边长
fabs(x)计算 x(高精度的double,float)的绝对值
abs(x)计算 x(整数)的绝对值

代码示例

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

int main()
{
	printf("%f\n",pow(2,3) );      //计算2的3次方
	printf("%f\n",sqrt(4));        //计算4的平方根
	printf("%f\n",cbrt(8));        //计算8的立方根
	printf("%f\n",hypot(3,4));     //计算直角边为3,4的直角三角形的斜边
    printf("%f\n",fabs(-3.14));    //计算|-3.14|
    printf("%f\n",abs(-3));        //计算|-3|

     
	return 0;
}

输出

 都看到这里了,点个赞呗!谢谢!!!



 其他不常见的函数暂更……

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

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

相关文章

监督学习和无监督学习

文章目录 监督学习和无监督学习监督学习算法包括无监督学习算法包括OpenCV十个子类举例&#xff1a; 监督学习和无监督学习 监督学习和无监督学习是机器学习领域中两种不同的学习范式&#xff0c;它们之间的区别在于数据的标签或标记的可用性以及学习任务的性质。 监督学习&am…

与chagpt对话记录

每日chagpt对话记录 关注我一下 vscode 浏览器版本 c 函数 无法跳转 C/C IntelliSense, debugging, and code browsing. C/C IntelliSense、调试和代码浏览是指在使用VS Code进行C/C开发时的一些核心功能。下面是对这些功能的简要说明&#xff1a; IntelliSense&#xff08;智能…

CSS基础学习--18 导航栏

一、导航栏链接列表 作为标准的 HTML 基础一个导航栏是必须的。 在我们的例子中我们将建立一个标准的 HTML 列表导航栏。 导航条基本上是一个链接列表&#xff0c;所以使用 <ul> 和 <li>元素非常有意义 <!DOCTYPE html> <html> <head> <…

山西电力市场日前价格预测【2023-06-19】

日前价格预测 预测明日&#xff08;2023-06-19&#xff09;山西电力市场全天平均日前电价为396.37元/MWh。其中&#xff0c;最高日前价格为468.17元/MWh&#xff0c;预计出现在21: 45。最低日前电价为345.23元/MWh&#xff0c;预计出现在13: 00。 以上预测仅供学习参考&#x…

端口进程内存查看操作(linux、windows)

一 windows操作命令 1、查看某个端口的信息 netstat -aon | findstr "端口" 2、查看PID对应的应用程序名 tasklist | findstr "PID" 3、taskkill /f /t /im 进程名称 然后结束该进程&#xff1a;taskkill /f /t /im 程序名.exe &#xff08;当然你也…

SpringBoot第12讲:SpringBoot接口如何对参数进行校验

SpringBoot第12讲&#xff1a;SpringBoot接口如何对参数进行校验 本文是SpringBoot第12讲&#xff0c;使用SpringBoot开发Restful接口时, 对于接口的查询参数后台也是要进行校验的&#xff0c;同时还需要给出校验的返回信息&#xff0c;放到上文我们统一封装的结构中。那么如何…

经典问题解析一

关于 const 的疑问 const 什么时候为只读变量&#xff1f;什么时候为常量&#xff1f; const 常量的判别标准 只有用字面量初始化的 const 常量才会进入符号表 (const 引用除外) 使用其他变量初始化的 const 常量仍然是只读变量 被 volatile 修饰的 const 常量不会进入符号…

TOGAF10®标准中文版--(架构开发方法)开发周期

1.2.1 关键点 以下是关于 ADM 的关键点&#xff1a; ADM 在整个过程中、阶段之间和阶段内都是迭代的&#xff08;参见TOGAF 标准 — ADM 技术&#xff09; 对于 ADM 的每次迭代&#xff0c;都必须做出新的决定&#xff1a; — 企业覆盖范围待定 — 要定义的详细程度 — 目…

ETCD安装部署与etcdctl常用命令

ETCD安装部署与etcdctl常用命令 单机部署集群部署静态配置服务发现etcd自发现模式DNS自发现模式 etcdctl常用命令key的常规操作key的历史与watchwatch压缩 租约 etcd常用配置参数member相关参数cluster相关参数proxy相关参数安全相关参数日志相关参数不安全相关参数统计相关参数…

存储笔记10 虚拟化

存储虚拟化 识别不同的虚拟化技术 描述块级虚拟化技术 描述文件级虚拟化技术 讨论虚拟资源调配 Virtualization Overview 何为虚拟化 物理资源抽象到逻辑视图IT利用率和表现集中/共享资源简化资源管理减少停机时间 planned or unplanned 提高IT资源性能 虚拟内存虚拟网…

如何下载并安装Ubuntu22.04

Info 用于帮助不熟悉Ubuntu的朋友安装Ubuntu系统。 Herman Ye Auromix 2023-06-18 1.下载Ubuntu镜像 首先&#xff0c;前往Ubuntu官网下载镜像。 选择 Ubuntu 22.04.2 LTS&#xff0c;点击Download 22.04.2进行下载。 2.准备镜像烧录工具 前往balena官网下载烧录工具. 点击…

ER图和对应关系模式(只写关键)

本图用Visio进行绘图&#xff1a; ●矩形框内表明实体名 ●菱形框内表明联系类型 ●椭圆框内表明属性&#xff0c;可以是实体的属性&#xff0c;也可以是联系类型的属性 ●关键码的属性&#xff0c;在属性名下加下划线 ER图转关系模式说明&#xff1a; ER图中间含1&#xf…

永磁同步直线电机学习笔记——什么是直线电机?

永磁同步直线电机&#xff08;Permanent Magnet Linear Synchronous Motor&#xff0c;简称PMLSM&#xff09;是一种电动机&#xff0c;它通过将永磁体和线圈组合在一起&#xff0c;将电能转化为机械运动。与传统的旋转电机不同&#xff0c;PMLSM是一种直线运动电机&#xff0c…

AI 绘画(2):Ai模型训练,实现“人物模型“自由

文章目录 文章回顾感谢人员题外话Ai绘画公约Ai模型训练硬件要求显存设置查看显存大小显存过小解决方法 视频教程前期准备SD配置设置SD设置配置SD训练配置pt生成训练集收集训练集要求截图软件推荐训练集版权声明一键重命名图片训练图片来源批量修改图片尺寸 开始训练导入训练集&…

mybatis02 CRUD

CRUD代表四个基本功能&#xff1a;创建&#xff08;Create&#xff09;、检索&#xff08;Retrieve&#xff09;、更新&#xff08;Update&#xff09;和删除&#xff08;Delete&#xff09;。它们是大多数应用程序所需要的最基本的持久化操作。 - 创建&#xff08;Create&…

【Java入门】-- Java基础详解之 [Java面向对象编程(初级)]

目录 1.类与对象 2.类与对象的区别与联系 3.对象在JVM内存中的存在形式(重要) 4.属性/成员变量/字段 5.如何创建对象 6.类和对象的内存分配机制 7.面向对象的三大特征&#xff1f; 8.面向对象和面向过程&#xff1f; 9.匿名对象 10.方法(method) 11.方法的重载(over…

一个AI关键词能卖500块?AI绘画引发研究关键词的商机

一个AI关键词能卖500块&#xff1f;AI绘画引发研究关键词的商机&#xff01; 绘画一直被人们看作是视觉艺术的呈现方式。通常情况下&#xff0c;学习绘画需要理解调色、构图和线条等要素。然而&#xff0c;自从AI介入绘画领域后&#xff0c;绘画的"画风"迅速发生了变…

Mac下载安装vscode

1. 下载 先从 https://code.visualstudio.com 下载Mac版vscode。 2. 安装 下载之后在浏览器的下载中点击安装vscode 下载的时候会有提示 有时候还需要配置【安全性与隐私】&#xff0c;即允许App Store和被认可的开发者安装软件 3. 简单配置 默认进来会要求选择主题&a…

1初步整合ABP模块化

1 首先创建一个WebApi项目 2 初步整合ABP模块化 Abp官网&#xff0c;这里我们先初步整合WebApi模块化&#xff0c;待程序运行起来&#xff0c;后续文章我们再对Abp进行深入。 2.1 NuGet&#xff1a;包Volo.Abp Volo,Abp&#xff1a;模块化必备 2.2 NuGet&#xff1a;Volo.Abp.A…

scratch lenet(5): 快速生成随机数的C语言实现

文章目录 1. 目的2. 使用 rand() 的正确姿势3. 使用 TAOCP 公式3.1 实现3.2 使用 4. 随机数&#xff1a;用于 Xavier Glorot 初始化4.1 Xavier Glorot 初始化是什么4.2 使用C语言执行 Xavier Glorot 初始化 5. References 1. 目的 用于 lenet 网络训练开始时&#xff0c; weig…