C++程序设计初步——关系运算和逻辑运算

2023-11-03

    C++中有众多的操作符来对其C++的程序内容进行运算,有:

 3.6  关系运算和逻辑运算

    C++中若要比较数据时可以使用关系运算符,同样在进行逻辑层面的运算时,用逻辑运算符将逻辑量进行连接。

  3.6.1  关系运算和关系表达式

    C++的关系运算符:

< 小于
<= 小于或等于
> 大于
>= 大于或等于
== 等于
!= 不等于

    前4种关系运算符( <  <=  >  >=)的优先级别相同,后2种的也相同,但前4种的关系运算符要大于后2种。

     可以看到关系运算符的优先级在6、7的位置。

    一些关系运算的等效:

c>a+b 等效于c>(a+b)
a>b==c 等效于(a>b)==c
a==b<c 等效于a==(b<c)
a=b>c

等效于a=(b>c)

    用关系运算符将两个表达式连接起来的式子,称关系表达式。

    一般形式 :表达式  关系表达式  表达式

    表达式可以是算数表达式或关系表达式、逻辑表达式、赋值表达式、字符表达式:

    一些合法的形式: a>b    a+b>b+c    (a==3)>(b==5)    'a'<'b'    (a>b)>(b<c)

   任何表达式都应该有一个确定的值,但关系表达式的值是一个逻辑值,即“真”或“假”。在C和C++中都用数值1代表“真”,用0代表“假”。

d=a>b     //d得到的值为1
f=a>b>c   //f得到的值为0(因为">"运算符是自左至右,先执行"a>b"得值为1)
          //再执行关系运算"1>c",得值0,赋给f

  3.6.2  逻辑常量和逻辑变量

    C语言没有提供逻辑型数据,关系表达式的值用数值1和0代替。C++增加了逻辑型数据。逻辑型常量只有两个,即false (假)和true(真)。逻辑型变量要用类型标识符bool(布尔变量)来定义。

  3.6.3  逻辑运算和逻辑表达式

    C++提供3种逻辑运算符:
    (1)&&   逻辑与   (相当于其他语言的AND)

    (2) | |    逻辑或   (相当于其他语言的OR)

    (3) !   逻辑非   (相当于其他语言的NOT)

逻辑运算的“真值表”:

  优先次序:     

    (1)!(非)---> &&(与)---> | | (或)

    (2)逻辑运算符中的“&&”和“||”低于关系运算符,“ !”高于算术运算符。

  同样将两个关系表达式用逻辑运算符连接起来就成为了一个逻辑运算符,

  一般形式:表达式  逻辑运算符  表达式

编写程序:判断闰年

#include<iostream>
using namespace std;

int main()
{
	int year;
	bool leap;
	cout << "please enter year:";
	cin >> year;
	if (year % 4 == 0)
	{
		if (year % 100 == 0)
		{
			if (year % 100 == 0)
				leap = true;
			else
				leap = false;
		}
		else
			leap = true;
	}
	else
		leap = false;
	if (leap)
		cout << year << "is ";
	else
		cout << year << "is not ";
	cout << "a leap year." << endl;
	return 0;
}

可以通过逻辑表达式来简化过程:

#include<iostream>
using namespace std;

int main()
{
	int year;
	cin >> year;
	if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
		cout << year << " is a leap year.";
	else
		cout << year << " is not a leap year.";
	return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++程序设计初步——关系运算和逻辑运算 的相关文章

  • 如何检查图像对象与资源中的图像对象是否相同?

    所以我试图创建一个简单的程序 只需在单击图片框中更改图片即可 我目前只使用两张图片 所以我的图片框单击事件函数的代码 看起来像这样 private void pictureBox1 Click object sender EventArgs
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • 如何在列表框项目之间画一条线

    我希望能够用水平线分隔列表框中的每个项目 这只是我用于绘制项目的一些代码 private void symptomsList DrawItem object sender System Windows Forms DrawItemEvent
  • 为什么#pragma optimize("", off)

    我正在审查一个 C MFC 项目 在某些文件的开头有这样一行 pragma optimize off 我知道这会关闭所有以下功能的优化 但这样做的动机通常是什么 我专门使用它来在一组特定代码中获得更好的调试信息 并在优化的情况下编译应用程序
  • 在 ASP.NET Core 3.1 中使用包含“System.Web.HttpContext”的旧项目

    我们有一些用 Net Framework编写的遗留项目 应该由由ASP NET Core3 1编写的API项目使用 问题是这些遗留项目正在使用 System Web HttpContext 您知道它不再存在于 net core 中 现在我们
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • 在数据库中搜索时忽略空文本框

    此代码能够搜索数据并将其加载到DataGridView基于搜索表单文本框中提供的值 如果我将任何文本框留空 则不会有搜索结果 因为 SQL 查询是用 AND 组合的 如何在搜索 从 SQL 查询或 C 代码 时忽略空文本框 private
  • 将自定义元数据添加到 jpeg 文件

    我正在开发一个图像处理项目 C 我需要在处理完成后将自定义元数据写入 jpeg 文件 我怎样才能做到这一点 有没有可用的图书馆可以做到这一点 如果您正在谈论 EXIF 元数据 您可能需要查看exiv2 http www exiv2 org
  • for循环中计数器变量的范围是多少?

    我在 Visual Studio 2008 中收到以下错误 Error 1 A local variable named i cannot be declared in this scope because it would give a
  • 如何将单个 char 转换为 int [重复]

    这个问题在这里已经有答案了 我有一串数字 例如 123456789 我需要提取它们中的每一个以在计算中使用它们 我当然可以通过索引访问每个字符 但是如何将其转换为 int 我研究过 atoi 但它需要一个字符串作为参数 因此 我必须将每个字
  • C++ 复制初始化和直接初始化,奇怪的情况

    在继续阅读本文之前 请阅读在 C 中 复制初始化和直接初始化之间有区别吗 https stackoverflow com questions 1051379 is there a difference in c between copy i
  • 如何让Gtk+窗口背景透明?

    我想让 Gtk 窗口的背景透明 以便只有窗口中的小部件可见 我找到了一些教程 http mikehearn wordpress com 2006 03 26 gtk windows with alpha channels https web
  • 将文本叠加在图像背景上并转换为 PDF

    使用 NET 我想以编程方式创建一个 PDF 它仅包含一个背景图像 其上有两个具有不同字体和位置的标签 我已阅读过有关现有 PDF 库的信息 但不知道 如果适用 哪一个对于如此简单的任务来说最简单 有人愿意指导我吗 P D 我不想使用生成的
  • C - 直接从键盘缓冲区读取

    这是C语言中的一个问题 如何直接读取键盘缓冲区中的数据 我想直接访问数据并将其存储在变量中 变量应该是什么数据类型 我需要它用于我们研究所目前正在开发的操作系统 它被称为 ICS OS 我不太清楚具体细节 它在 x86 32 位机器上运行
  • 为什么 C# Math.Ceiling 向下舍入?

    我今天过得很艰难 但有些事情不太对劲 在我的 C 代码中 我有这样的内容 Math Ceiling decimal this TotalRecordCount this PageSize Where int TotalRecordCount
  • 为什么我收到“找不到编译动态表达式所需的一种或多种类型。”?

    我有一个已更新的项目 NET 3 5 MVC v2 到 NET 4 0 MVC v3 当我尝试使用或设置时编译出现错误 ViewBag Title财产 找不到编译动态表达式所需的一种或多种类型 您是否缺少对 Microsoft CSharp
  • Validation.ErrorTemplate 的 Wpf 动态资源查找

    在我的 App xaml 中 我定义了一个资源Validation ErrorTemplate 这取决于动态BorderBrush资源 我打算定义独特的BorderBrush在我拥有的每个窗口以及窗口内的不同块内
  • x86 上未对齐的指针

    有人可以提供一个示例 将指针从一种类型转换为另一种类型由于未对齐而失败吗 在评论中这个答案 https stackoverflow com questions 544928 reading integer size bytes from a
  • mysql-connector-c++ - “get_driver_instance”不是“sql::mysql”的成员

    我是 C 的初学者 我认为学习的唯一方法就是接触一些代码 我正在尝试构建一个连接到 mysql 数据库的程序 我在 Linux 上使用 g 没有想法 我运行 make 这是我的错误 hello cpp 38 error get driver
  • 恢复上传文件控制

    我确实阅读了以下帖子 C 暂停 恢复上传 https stackoverflow com questions 1048330 pause resume upload in c 使用 HTTP 恢复上传 https stackoverflow

随机推荐

  • ue打开服务器文件速度很慢,看完大牛这篇文章,再遇到服务器反映慢的情况就不怕了...

    最近服务器反映很慢 查看服务器上的应用程序经常出现超时等等 而且还有时候出现卡死的情况 经过发现服务器I O压力很大 压力来自硬盘的I O访问已经达到100 最后原因是线上业务代码同一时间写入导致服务器硬盘I O爆表了 我这里纪录一下为了方
  • Hadoop集群搭建记录

    本文目录 写在前面 step1 安装openssh server step2 ssh文件夹的创建及生成密钥文件 step3 传送该文件 step4 slave1 slave2节点操作 step5 所有节点最终配置 免密登录成功 写在前面 本
  • 原来早就有java代码规范

    happy 最近几天 研究代码规范 想给给公司制定一个代码规范 公司很小 目前还没有代码规范 这个东西很烦人 也很难产生作用 小公司一般不采用吧 但现在为了提高代码质量 也就需要考虑了 今天 发现早在1997年 SUN公司就制定了java代
  • logit回归模型_混合logit模型(随机参数模型)的STATA应用及结果解读

    选择实验获得的数据主要通过离散选择模型来完成 离散选择模型中 最主要的是logit模型 之前已经介绍了二项logit模型回归的STATA实现 有修改 多项logit模型详解 多项logit模型回归系数解读 多项logit模型回归的检验 继续
  • spring boot AOP练习 @Aspect

    spring boot AOP练习 Aspect 环境
  • 【测评】用这款神器2小时就撸完了1天工作量的代码!爽

    目 录 一 写在前面 二 测评信息 三 测评体验 3 1 安装方便 3 2 始于颜值 3 2 1 简约美观的主题 3 2 2 多变时尚的风格 3 3 忠于强大 3 3 1 快捷的搜索 3 3 2 丰富的功能 3 3 3 开发者神器 3 4
  • [LeetCode] 811. 子域名访问计数

    题目描述 一个网站域名 如 discuss leetcode com 包含了多个子域名 作为顶级域名 常用的有 com 下一级则有 leetcode com 最低的一级为 discuss leetcode com 当我们访问域名 discu
  • python android 录制屏幕

    def settingtime while True starttime time strftime H M S recordcmd adb shell screenrecord sdcard demo mp4 pullfile adb p
  • 开发者的时代红利在哪里?

    2021 年和 2022 年 也许给很多人上了一场关于 风险意识教育 的课程 无论你是 最难 毕业季中的应届毕业生 还是在职场中苦寻事业道路的各行从业者 这一课众生平等 在疫情影响之下 经济大环境动荡 要想在市场下行的背景下全身而退 就需要
  • c++拷贝构造函数(深拷贝,浅拷贝)详解

    一 什么是拷贝构造函数 首先对于普通类型的对象来说 它们之间的复制是很简单的 例如 int a 100 int b a 而类对象与普通对象不同 类对象内部结构一般较为复杂 存在各种成员变量 下面看一个类对象拷贝的简单例子 include
  • 引入wangeditor 报错 error in ./node_modules/@wangeditor/editor/dist/index.esm.js

    ERROR Failed to compile with 1 errors 17 53 12 error in node modules wangeditor editor dist index esm js Module parse fa
  • Mac升级之后已破解的intellij idea无法启动

    打开终端 进入 gt gt gt Users ethan Library Application Support JetBrains IntelliJIdea 对应版本 gt gt gt vim idea vmoptions 删除之前配置的
  • Struts2反序列化漏洞复现

    环境 vulhub 环境搭建 进入s2 048目录 切换root用户 启动漏洞环境 docker compose up d 漏洞复现 浏览器访问 showcase Gangster Name输入 233 233 其余随便填 将Gangste
  • Linux服务器遭受黑客攻击时的日志分析排除

    0x00 前言 Linux系统拥有非常灵活和强大的日志功能 可以保存几乎所有的操作记录 并可以从中检索出我们需要的信息 本文简介一下Linux系统日志及日志分析技巧 0x01 日志简介 日志默认存放位置 var log 查看日志配置情况 m
  • Postman 如何进行参数化

    前言 Postman作为一款接口测试工具 受到了非常多的开发工程师的拥护 那么做为测试 了解Postman这款工具就成了必要的了 这篇文章就是为了解决Postman怎么进行参数化的 全局变量 全局变量是将这个变量设置成整个程序的都可以用 不
  • SSH客户端工具——PuTTY(1)

    引言 本文介绍了SSH客户端工具PuTTY的下载和在Windows下的安装方法 怎么使用PuTTYgen生成SSH密钥对 以及如何通过PuTTY远程登录SSH服务器 一 安装PuTTY PuTTY是在Windows平台下常用的SSH客户端工
  • 羊年计划

    今天是新年上班第一天 告诉自己 要有个计划 要改变 要成就 要突破 要加油 那么到底要如何呢 新年里要做哪些事呢 订婚 婚姻大事 要包容 要相亲相爱 今年我要带着宝贝儿走出去 到处玩 我要带着宝宝坐下来 为梦想奋斗 减肥 健康的身体是革命的
  • 【测试开发】自动化测试在美团外卖的实践与落地

    文章目录 自动化测试在美团外卖的实践与落地 1 项目背景 2 项目目标 3 方案选型 4 实践和探索 4 1 问题和挑战 4 2 前置条件准备 4 3 用例录制与回放的数据一致性 4 4 用例录制与回放的操作一致性 4 5 可溯源的自动化测
  • 你假笨JVM参数 - 001 ReservedCodeCacheSize

    你假笨JVM参数分享全整理 微信小程序 JVMPocket JVM参数交流平台 Javaer的神奇口袋 序号 001 时间 2017 07 13 参数 XX ReservedCodeCacheSize 含义 Reserved code ca
  • C++程序设计初步——关系运算和逻辑运算

    C 中有众多的操作符来对其C 的程序内容进行运算 有 3 6 关系运算和逻辑运算 C 中若要比较数据时可以使用关系运算符 同样在进行逻辑层面的运算时 用逻辑运算符将逻辑量进行连接 3 6 1 关系运算和关系表达式 C 的关系运算符 lt 小