C语言从头学59——学习头文件math.h(二)

继续学习头文件<math.h>,编号接续前文。

六、三角函数

math.h中的三角函数包括:

acos():反余弦,参数范围-1至+1,返回值double类型:0~PI

asin():反正弦,参数范围-1至+1,返回值double类型:-PI/2~PI/2

atan():反正切,参数范围-1至+1,返回值double类型:-PI/4~PI/4

atan2():反正切(这个函数需要两个参数对边和邻边,且这两个边还放在十字坐标系中,因此结果会反应出在哪个象限)

cos():余弦,参数为弧度值,范围0~2*PI,返回值double类型:-1~+1

sin():正弦,参数为弧度值,范围0~2*PI,返回值double类型:-1~+1

tan():正切,参数为弧度值,范围0~2*PI(不等于PI/2、3/4PI),返回值double类型:0~无穷大

以上函数使用起来很简单,注意参数范围即可。

七、指数函数和对数函数

exp():计算e的x次乘方即e^x;返回值double类型

exp2():计算2的乘方,即2^x;返回值double类型

log():计算以e为底的自然对数;返回值double类型

log2():计算以2为底的对数;返回值double类型

log10():计算以10为底的对数;返回值double类型

八、函数frexp()

功能:将参数分解成浮点数*以2为底的指数部分(即x*2^n)

使用格式:frexp(参1,参2);

参1:待分解的浮点数

参2:int*指针(指向2的n次方的n)

返回值:double类型(即分解成的浮点数)

说明:如果参1为0,则返回值及参2均未0

九、函数ilogb()

功能:返回参数的指数部分(底数为FLT_RADIX,值一般是2)

使用格式:ilogb(参1);

参1:double类型的数

返回值:返回int类型的指数部分

十、函数ldexp()

功能:将一个double类型的数x与2的整型指数n合成一个double数,即将x*2^n形式的数合成一个double数。

使用格式:ldexp(参1,参2);

参1:double类型的浮点数(x*2^n中的x)

参2:int类型的指数部分(x*2^n中的n)

返回值:合成的double类型结果

十一、实验程序

cpp 复制代码
#include<stdio.h>
#include<math.h>
#define PI 3.1415926
int main(void)
{
//实验三角函数
	float a = sinf(30 * PI / 180);
	printf("30°的sin值:%f\n", a);//运行结果:30°的sin值:0.500000
	float b = asinf(0.5)*180/PI;
	printf("0.5的asin值(度):%f\n",b);//运行结果:0.5的asin值(度):30.000000
//实验指数函数和对数函数
	double e = exp(1);
	printf("e的值等于:%f\n", e);//运行结果:e的值等于:2.718282
	double x = log10(2);
	printf("以10为底2的对数:%f\n", x);//运行结果:以10为底2的对数:0.301030
//实验函数frexp()
	double y= 22222.22;
	int n = 0;
	double fr = frexp(y, &n);
	printf("22222.22分解结果:%f*2^%d\n", fr, n);//运行结果:22222.22分解结果:0.678168*2^15
//实验函数ilogb()
	double z = 1025;
	int c = ilogb(z);
	printf("1024以2为底的指数:%d\n", c);
//实验函数ldexp
	double res = ldexp(2.32, 8); //函数2.32*2^8计算出double结果
	printf("2.32*2^8=%f\n", res);//运行结果:2.32*2^8=593.920000
	getchar();
	return 0;
}
相关推荐
用户6120414922133 小时前
C语言做的文本词频数量统计功能
c语言·后端·敏捷开发
小莞尔3 天前
【51单片机】【protues仿真】基于51单片机的篮球计时计分器系统
c语言·stm32·单片机·嵌入式硬件·51单片机
小莞尔3 天前
【51单片机】【protues仿真】 基于51单片机八路抢答器系统
c语言·开发语言·单片机·嵌入式硬件·51单片机
liujing102329293 天前
Day03_刷题niuke20250915
c语言
第七序章3 天前
【C++STL】list的详细用法和底层实现
c语言·c++·自然语言处理·list
l1t4 天前
利用DeepSeek实现服务器客户端模式的DuckDB原型
服务器·c语言·数据库·人工智能·postgresql·协议·duckdb
l1t4 天前
利用美团龙猫用libxml2编写XML转CSV文件C程序
xml·c语言·libxml2·解析器
Gu_shiwww4 天前
数据结构8——双向链表
c语言·数据结构·python·链表·小白初步
你怎么知道我是队长4 天前
C语言---循环结构
c语言·开发语言·算法
程序猿编码4 天前
基于 Linux 内核模块的字符设备 FIFO 驱动设计与实现解析(C/C++代码实现)
linux·c语言·c++·内核模块·fifo·字符设备