C++ 数学函数、头文件及布尔类型详解
C++ 数学
C++ 有许多函数可以让您在数字上执行数学任务。
最大值和最小值
max(x, y)
函数可用于找到 x 和 y 的最大值:
示例
cout << max(5, 10);
而 min(x, y)
函数可用于找到 x 和 y 的最小值:
示例
cout << min(5, 10);
C++ <cmath>
头文件
其他函数,例如 sqrt
(平方根)、round
(四舍五入)和 log
(自然对数),可以在 <cmath>
头文件中找到:
示例
// 包含 cmath 库
#include <cmath>
cout << sqrt(64);
cout << round(2.6);
cout << log(2);
其他数学函数
以下是来自 <cmath>
库的其他流行数学函数列表:
函数 描述
abs(x)
返回 x 的绝对值
acos(x)
返回 x 的反余弦值
asin(x)
返回 x 的反正弦值
atan(x)
返回 x 的反正切值
cbrt(x)
返回 x 的立方根
ceil(x)
将 x 的值四舍五入为最接近的整数
cos(x)
返回 x 的余弦值
cosh(x)
返回 x 的双曲余弦值
exp(x)
返回 e 的 x 次方的值
expm1(x)
返回 e 的 x 次方的值减 1
fabs(x)
返回浮点数 x 的绝对值
fdim(x, y)
返回 x 和 y 之间的正差值
floor(x)
将 x 的值向下舍入到最接近的整数
hypot(x, y)
返回 sqrt(x²+y²) 而不会发生中间溢出或下溢
fma(x, y, z)
在不失去精度的情况下返回 x*y+z
fmax(x, y)
返回浮点数 x 和 y 中的最高值
fmin(x, y)
返回浮点数 x 和 y 中的最低值
fmod(x, y)
返回 x/y 的浮点余数
pow(x, y)
返回 x 的 y 次幂的值
sin(x)
返回 x 的正弦值(x 以弧度表示)
sinh(x)
返回双精度值 x 的双曲正弦值
tan(x)
返回角度的正切值
tanh(x)
返回双精度值的双曲正切值
C++ 布尔类型
在编程中,经常需要一个只能拥有两个值之一的数据类型,比如:
- 是 / 否
- 打开 / 关闭
- 真 / 假
为此,C++ 提供了一个 bool
数据类型,它可以取 true
(1)或 false
(0)的值。
布尔值
布尔变量由 bool
关键字声明,只能取 true
或 false
的值:
示例
bool isCodingFun = true;
bool isFishTasty = false;
cout << isCodingFun; // 输出 1(true)
cout << isFishTasty; // 输出 0(false)
从上面的示例中,您可以看出 true
值返回 1,false
返回 0。
但是,通过比较值和变量来返回布尔值更为常见(请参见下一页)。
C++ 布尔表达式
布尔表达式返回一个布尔值,要么是 1(true),要么是 0(false)。
这对于构建逻辑和找到答案很有用。
您可以使用比较运算符,例如大于(>
)运算符,来判断表达式(或变量)是否为 true 或 false:
示例
int x = 10;
int y = 9;
cout << (x > y); // 返回 1(true),因为 10 比 9 更大
甚至更简单:
示例
cout << (10 > 9); // 返回 1(true),因为 10 比 9 更大
在下面的示例中,我们使用等于(==
)运算符来评估一个表达式:
示例
int x = 10;
cout << (x == 10); // 返回 1(true),因为 x 的值等于 10
示例
cout << (10 == 15); // 返回 0(false),因为 10 不等于 15
现实生活示例
让我们考虑一个“现实生活示例”,在这个示例中,我们需要找出一个人是否足够年龄投票。
在下面的示例中,我们使用 >=
比较运算符来判断年龄(25)是否大于等于投票年龄限制,这个限制被设置为 18:
示例
int myAge = 25;
int votingAge = 18;
cout << (myAge >= votingAge); // 返回 1(true),意味着 25 岁的人可以投票!
很酷,不是吗?一个更好的方法(因为我们现在在进行中),是将上面的代码包装在 if...else
语句中,这样我们就可以根据结果执行不同的操作:
示例
如果 myAge 大于或等于 18,则输出“足够年龄投票!”。否则输出“不足年龄投票。”:
int myAge = 25;
int votingAge = 18;
if (myAge >= votingAge) {
cout << "足够年龄投票!";
} else {
cout << "不足年龄投票。";
}
// 输出:足够年龄投票!
布尔类型是所有 C++ 比较和条件的基础。
填写缺失部分以打印值 1(表示 true)和 0(表示 false):
bool isCodingFun = true;
bool isFishTasty = false;
cout << isCodingFun;
cout << isFishTasty;
最后
为了方便其他设备和平台的小伙伴观看往期文章:
微信公众号搜索:Let us Coding
,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎点赞、收藏、关注
C++ 数学函数、头文件及布尔类型详解的更多相关文章
- python基础语法_python中的布尔类型详解
转自:http://www.cnblogs.com/521yywzyzhc/p/6264885.html 我们已经了解了Python支持布尔类型的数据,布尔类型只有True和False两种值,但是 ...
- Boolean 布尔类型详解
这是最简单的类型.boolean 表达了真值,可以为 TRUE 或 FALSE.两个都不区分大小写. 要明确地将一个值转换成 boolean,用 (bool)或者 (boolean) 来强制转换.但是 ...
- C语言的头文件和宏定义详解
原文链接:https://blog.csdn.net/abc_12366/article/details/79155540
- 函数-头文件//Calculator.h
// // Calculator.h // 函数-头文件 // // Created by zhangxueming on 15/6/2. // Copyright (c) 2015年 zhangxu ...
- 【CUDA】Windows 下常用函数头文件
CUDA 函数 头文件 __global__ __device__ #include <cuda_runtime.h> threadIdx #include <device_laun ...
- C++之string类型详解
C++之string类型详解 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够.字符串长度等等,而且作为一个泛型类出现,他集成的操作函 ...
- C++11 并发指南六(atomic 类型详解四 C 风格原子操作介绍)
前面三篇文章<C++11 并发指南六(atomic 类型详解一 atomic_flag 介绍)>.<C++11 并发指南六( <atomic> 类型详解二 std::at ...
- [概念] js的函数节流和throttle和debounce详解
js的函数节流和throttle和debounce详解:同样是实现了一个功能,可能有的效率高,有的效率低,这种现象在高耗能的执行过程中区分就比较明显.本章节一个比较常用的提高性能的方式,通常叫做&qu ...
- js课程 1-3 Javascript变量类型详解
js课程 1-3 Javascript变量类型详解 一.总结 一句话总结:js对象点(属性方法),json对象冒号(属性方法).属性和方法区别只有一个括号. 1.json对象中的函数的使用? 函数名 ...
- C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解
前言:已经有一个月没写点什么了,感觉心里空落落的.今天再来篇干货,想要学习Webapi的园友们速速动起来,跟着博主一起来学习吧.之前分享过一篇 C#进阶系列——WebApi接口传参不再困惑:传参详解 ...
随机推荐
- 逆向实战31——xhs—xs算法分析
前言 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 公众号链接 目标网站 aH ...
- 【Azure APIM】解决APIM Self-hosted Gateway在AKS上,最开始访问时候遇见的404问题
问题描述 根据APIM官方文档,创建Self-hosted 网关在AKS中( 使用 YAML 将自承载网关部署到 Kubernetes :https://docs.azure.cn/zh-cn/api ...
- 【Azure 应用服务】Azure Web App 服务默认支持一些 Weak TLS Ciphers Suite,是否有办法自定义修改呢?
问题描述 当 Azure Web App 进行安全扫描后,发现依旧支持很多弱TLS加密套件(Weak TLS Ciphers Suite),那么是否有办法来关闭这些弱的加密套件呢? 在Windows ...
- 【Azure 存储服务】存储在Azure Storage Table中的数据,如何按照条件进行删除呢?
问题描述 如何按条件删除 Storage Table 中的数据,如果Table中有大量的条记录需要删除,Java代码如何按条件删除 Table中的数据(Entity)? (通过Azure Storag ...
- MongoDB下载和可视化工具NoSQL Manager for MongoDB 软件的下载,连接数据库
在官网下载MongoDB的版本为4.0.28,之前试了好几个高版本和低版本,都不行,最后,4.0.28版本好了.下载网页:https://www.mongodb.com/try/download/co ...
- 彩虹猫IDA分析记录
目录 彩虹猫分析 概述 无参启动 带/main参数启动 带/watchdog参数启动 MBR引导程序和动画程序 第一段 引导代码 第二段 动画代码 其他函数 扭曲桌面 扰乱鼠标 钩子函数 桌面绘制图标 ...
- Java 演示线程的死锁问题
1 package bytezero.deadlock; 2 3 /** 4 * 演示线程的死锁问题: 5 * 6 * 1.死锁的理解:不同的线程分别占用对方需要的同步资源不放弃,都在等待对方放弃 7 ...
- 学习笔记:勒让德(Legendre)符号
授课老师:ybx.chh. 授课时间:2024/3/8. 授课内容纲要:勒让德符号及其性质(欧拉准则,高斯引理,二次互反律). 勒让德符号概括 好像在 OI 和 MO 当中都挺有用的. 勒让德符号的定 ...
- Linux 系统进程管理
Linux 系统进程管理 目录 Linux 系统进程管理 一.进程的概述 1.1 什么是进程? 1.2 进程和程序的区别 1.3 进程的生命周期 1.4 进程的运行过程 二. 静态显示进程状态-ps ...
- [已读带总结] Effective JavaScript 编写高质量JavaScript代码的68个有效方法
目录 电子书下载:https://www.jb51.net/books/328297.html 第2章 第11条 熟练掌握闭包 https://www.cnblogs.com/wengxuesong/ ...