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接口传参不再困惑:传参详解 ...
随机推荐
- APScheduler可能遇到的问题
uWsgi使用多进程模式启动Django项目,因此我们会有多个进程去执行这个定时任务,导致定时任务被重复执行.解决这个问题的方法,我们直接就会想到采用加锁的方式.第一个拿到锁的进程,执行定时任务,其余 ...
- .NET集成DeveloperSharp实现数据分页
数据分页,几乎是任何应用系统的必备功能.但当数据量较大时,分页操作的效率就会变得很低.大数据量分页时,一个操作耗时5秒.10秒.甚至更长时间都是有可能的,但这在用户使用的角度是不可接受的-- 数据分页 ...
- Python函数对象与闭包函数
[一]函数对象 函数对象指的是函数可以被当做 数据 来处理,具体可以分为四个方面的使用 [1]函数可以被引用 def add(x,y): return x + y func = add res = f ...
- 第12章_MySQL数据类型精讲
第12章_MySQL数据类型精讲 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 1. MySQL中的数据类型 类型 类型举例 整数类型 TINYINT. ...
- Abp.Zero 手机号免密登录验证与号码绑定功能的实现(二):改造Abp默认实现
接下来我们重写原Abp的部分实现,来驳接手机号相关业务. 改造User类 重写PhoneNumber使得电话号码为必填项,和中国大陆手机号11位长度 public new const int MaxP ...
- 浅谈IT系统性能优化
一个刚上线的IT系统,往往负载压力不大,所以不会存在什么性能问题.这时,人们大多只关心系统的功能性和用户体验.但是,随着时间推移,用户量和数据量都比刚上线的时候要多很多,高并发和大数据场景下,系统遇到 ...
- snipaste 替换 微信截图快捷键 F3贴图功能实在是太帅了 - 软件推荐
snipaste 替换 微信截图快捷键 这个软件很久之前就知道,一直也没觉得可以替换微信的截图功能,毕竟能懒就懒. 今天同事又推荐 用了下,觉得确实ok. https://zh.snipaste.co ...
- [已读带总结] Effective JavaScript 编写高质量JavaScript代码的68个有效方法
目录 电子书下载:https://www.jb51.net/books/328297.html 第2章 第11条 熟练掌握闭包 https://www.cnblogs.com/wengxuesong/ ...
- SpringBoot 学习记录 2021.05.13 Started
环境搭建 Spring Boot 2.x Java JDK 需要安装 JDK java8 也就是 1.8, 用 jdk-8u271-windows-x64.exe 网上有很多安装java8的教程,很简 ...
- linux环境下基于python的OpenCV 保存视频
一 概念 在OpenCV中保存视频使用的是VedioWriter对象,在其中指定输出文件的名称, A 创建视频写入的对象 out = cv2.VideoWriter(filename,fourcc, ...