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 关键字声明,只能取 truefalse 的值:

示例

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++ 数学函数、头文件及布尔类型详解的更多相关文章

  1. python基础语法_python中的布尔类型详解

    转自:http://www.cnblogs.com/521yywzyzhc/p/6264885.html   我们已经了解了Python支持布尔类型的数据,布尔类型只有True和False两种值,但是 ...

  2. Boolean 布尔类型详解

    这是最简单的类型.boolean 表达了真值,可以为 TRUE 或 FALSE.两个都不区分大小写. 要明确地将一个值转换成 boolean,用 (bool)或者 (boolean) 来强制转换.但是 ...

  3. C语言的头文件和宏定义详解

    原文链接:https://blog.csdn.net/abc_12366/article/details/79155540

  4. 函数-头文件//Calculator.h

    // // Calculator.h // 函数-头文件 // // Created by zhangxueming on 15/6/2. // Copyright (c) 2015年 zhangxu ...

  5. 【CUDA】Windows 下常用函数头文件

    CUDA 函数 头文件 __global__ __device__ #include <cuda_runtime.h> threadIdx #include <device_laun ...

  6. C++之string类型详解

    C++之string类型详解 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够.字符串长度等等,而且作为一个泛型类出现,他集成的操作函 ...

  7. C++11 并发指南六(atomic 类型详解四 C 风格原子操作介绍)

    前面三篇文章<C++11 并发指南六(atomic 类型详解一 atomic_flag 介绍)>.<C++11 并发指南六( <atomic> 类型详解二 std::at ...

  8. [概念] js的函数节流和throttle和debounce详解

    js的函数节流和throttle和debounce详解:同样是实现了一个功能,可能有的效率高,有的效率低,这种现象在高耗能的执行过程中区分就比较明显.本章节一个比较常用的提高性能的方式,通常叫做&qu ...

  9. js课程 1-3 Javascript变量类型详解

    js课程 1-3  Javascript变量类型详解 一.总结 一句话总结:js对象点(属性方法),json对象冒号(属性方法).属性和方法区别只有一个括号. 1.json对象中的函数的使用? 函数名 ...

  10. C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解

    前言:已经有一个月没写点什么了,感觉心里空落落的.今天再来篇干货,想要学习Webapi的园友们速速动起来,跟着博主一起来学习吧.之前分享过一篇 C#进阶系列——WebApi接口传参不再困惑:传参详解  ...

随机推荐

  1. 【Docker】使用 Docker 部署 .Net Core 项目 (四)

    系列目录: [Docker] CentOS7 安装 Docker 及其使用方法 ( 一 ) [Docker] 使用Docker 在阿里云 Centos7 部署 MySQL 和 Redis (二) [D ...

  2. 十五: InnoDB的存储结构

    InnoDB的存储结构 1.数据库的存储结构:页 索引结构给我们提供了高效的索引方式,不过索引|信息以及数据记录都是保存在文件上的,确切说是存储在页结构中.另一方面,索引是在存储引擎中实现的,MySQ ...

  3. Java //100以内的质数的输出(从2开始,到这个数-1结束为止,都不能被这个数本身整除)+优化

    1 //100以内的质数的输出(从2开始,到这个数-1结束为止,都不能被这个数本身整除) 2 boolean isFlag = true; //标识i是否被j除尽,修改其值 3 4 for(int i ...

  4. Java //输入两个正整数m和n,求其最大的公约数和最小公倍数//12和20的最大公约数是4,最小公倍数是60

    1 //输入两个正整数m和n,求其最大的公约数和最小公倍数 2 //12和20的最大公约数是4,最小公倍数是60 3 4 Scanner scan = new Scanner(System.in); ...

  5. pycharm/Intellij idea双击打不开,没有反应,下列方法亲测有用!

    第一种方法: 看看你的微软C++运行库是不是误删了.....我就这么干过...以前有个软件捆绑这个 安装了 结果我后来给删了 ,导致我pycharm 和intellij idea全都打不开 !!!各位 ...

  6. 计算机网络-IP地址

    目录 子网划分 定长子网划分 子网划分的方法 子网掩码 可变长子网划分 无类别编址 网络前缀 路由聚合 特殊用途的IP地址 专用网络地址 链路本地地址 运营商级NAT共享地址 用于文档的测试网络地址 ...

  7. Swoft - Bean

    一.Bean 在 Swoft 中,一个 Bean 就是一个类的一个对象实例. 它(Bean)是通过容器来存放和管理整个生命周期的. 最直观的感受就是省去了频繁new的过程,节省了资源的开销. 二.Be ...

  8. 使用ScottPlot库在.NET WinForms中快速实现大型数据集的交互式显示

    前言 在.NET应用开发中数据集的交互式显示是一个非常常见的功能,如需要创建折线图.柱状图.饼图.散点图等不同类型的图表将数据呈现出来,帮助人们更好地理解数据.发现规律,并支持决策和沟通.本文我们将一 ...

  9. 谈谈Android中的消息提示那些坑

    Android中的消息提示无非就那几种,弹个窗(Toast或SnackBar),或者是弹出个对话框(Dialog),最近在使用的时候也是遇到了问题,有时候导致APP闪退 稍微研究会,总结了一下使用过程 ...

  10. day02-显示所有菜品&点餐功能

    满汉楼02 4.功能实现04 4.6显示所有菜品 4.6.1思路分析 创建一个菜单表menu,在Domain层创建与菜单表对应的Javabean-Menu类,在DAO层创建MenuDAO,完成对men ...