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接口传参不再困惑:传参详解 ...
随机推荐
- django学习第十天---ajax请求和JsonResponse
AJAX 它是js的功能,特点:异步请求,局部刷新 简单请求示例 基于jquery的ajax请求 异步请求,不会刷新页面,页面上用户之前输入的数据都不会丢失 <p>下面是ajax请求< ...
- 【Azure 事件中心】在Windows系统中使用 kafka-consumer-groups.bat 查看Event Hub中kafka的consumer groups信息
问题描述 使用 Apache Flink 连接支持 Apache Kafka的Azure Event Hub后,由于消费端的Consumer Group是动态创建,在门户页面和Service Bus ...
- X86模拟龙芯与编译 .NET CoreCLR
目录 .NET 收到一台龙芯机器 编译 CoreCLR 环境要求 部署虚拟机与环境 Linux 安装 KVM 下载需要的文件 启动模拟器 下载 CoreCLR 尝试编译 CoreCLR 前段时间得知龙 ...
- C#系列文章索引
由于有读者说,是否可以讲C#一类的文章都统一在一起,因此我做了个索引文章置顶起来,以后C#相关文章也会同步更新到该索引文章下,以便查找 .Neter所应该彻底了解的委托 - RyzenAdorer - ...
- rt_snprintf()是什么
在c++中snprintf()函数的解释 1,函数原型: int snprintf(char* dest_str,size_t size,const char* format,...); 2,功能 将 ...
- Kubernetes CKA考试之Killer Simulator(上)
写在前面 个人微信公众号:密码应用技术实战 个人博客园首页:https://www.cnblogs.com/informatics/ 注:学习交流使用 CKA Simulator Kubernetes ...
- 摆脱鼠标系列 - 用git命令提交代码
需求 最近开始改变用鼠标的习惯,之前一直是用鼠标点击vscode,点击提交 现在不用鼠标,改用命令行,命令很简单,主要是习惯的改变 实现 vscode环境 ctrl + ` 快捷键打开命令行 git ...
- k8s如何对外访问service
在Kubernetes(K8s)中,可以通过以下几种方式对外访问Service: 1.NodePort: 这是最常见的对外访问Service的方式.通过将Service的类型设置为NodePort,K ...
- buntu之命令行模式和图形界面切换
1.按ALT+CTRL+F1切换到字符界面(Linux实体机) 如果是VMware虚拟机安装的Linux系统,则切换到字符界面的时候需要以下操作 按下ALT+CTRL+SPACE( ...
- Salesforce LWC学习(四十三) lwc 零基础学习路径的视频已上传B站
本篇参考:https://www.bilibili.com/video/BV1QM411G7pN/ 还记得salesforce零基础学习(一百二十五)零基础学习SF路径 中描述的那样,预计今年年底以前 ...