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接口传参不再困惑:传参详解 ...
随机推荐
- java中sha1.md5,base64到底怎么回事
MD5 Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护.MD5用的是哈希函数,在计算机网络中应用 ...
- 2024年,提升Windows开发和使用体验实践 - 小工具篇
前言 本来是一篇文章的,不知不觉写成了系列. 其实开工那几天就已经写好了长文,这几天一忙就没连着发了. 本文介绍一些 Windows 上用的小工具. 美化/折腾/小工具 虽然这是在用 Windows ...
- 为什么HashMap的键值可以为null,而ConcurrentHashMap不行?
写在开头 昨天在写<HashMap很美好,但线程不安全怎么办?ConcurrentHashMap告诉你答案!>这篇文章的时候,漏了一个知识点,知道晚上吃饭的时候才凸显想到,关于Concur ...
- Java 对属性赋值的位置 执行的先后顺序
1 package com.bytezreo.block; 2 3 /** 4 * 5 * @Description 对属性赋值的位置: 6 * @author Bytezero·zhenglei! ...
- markdown 一键上传发布
工具介绍 工具由来 对于程序员等常常需要写文档的人来说,将本地markdown文档同步到云端博客平台,是一件比较繁琐的事情,首当其冲的是,大量的本地图片需要"互联网"化,即使网络上 ...
- chatGPT初体验
chatGPT NLP技术,通过统计的手段模拟出更正确的答案. 他与以前的NLP不一样,他有上下文语义,他能够模拟场景,能够总结很多文章信息. 因此对于谷歌等搜索引擎就很有攻击性了,因为chatGPT ...
- vue和xml复习
复习 JS知识梳理 JS定义的位置 行内js(事件名="javascript:js代码"),内部js(
- RC4Drop算法的工作原理揭秘:加密技术的进步之路
RC4Drop算法起源: RC4Drop算法是RC4算法的一种改进版本,旨在解决RC4算法在长时间加密过程中可能出现的密钥流偏置问题.RC4算法由Ron Rivest于1987年设计,是一种流密码算法 ...
- Elasticsearch 如何保证写入过程中不丢失数据的
丢失数据的本质 在本文开始前,首先明白一个点,平时我们说的组件数据不丢失究竟是在指什么,如果你往ES写入数据,ES返回给你写入错误,这个不算数据丢失.如果你往ES写入数据,ES返回给你成功,但是后续因 ...
- Github登录 2FA(Two-Factor Authentication/两因素认证) 浏览器插件-已验证
Github登录 2FA(Two-Factor Authentication/两因素认证) 浏览器插件-已验证 chrome 装下这个扩展 身份验证器 https://chromewebstore.g ...