【C++】枚举类型
如果一个变量只能有几种可能的值,可以定义为枚举类型。所谓“枚举”就是把变量的值一一列出来,变量的值只能在列出来的值的范围内。
声明枚举类型的一般形式:
enum 枚举类型名 {枚举常量表}
enum weekday {sun,mon,tue,wed,thu,fri,sat};
weekday workday,week_end;
注意:
1、不能对枚举元素赋值。
sun = 0; mon = 0;//错误,不能用赋值语句对枚举常量赋值
2、枚举值可以做比较判断。
if (workday == mon) ...;
if (workday > sun) ...;
3、不能把一个整数直接赋值给一个枚举变量。枚举变量只能接受枚举类型的数据。
workday = tue;
workday = 2;//错误,它们属于不同类型
workday = weekday(2);//C++风格的强制转换
workday = (weekday)2;//C语言风格的强制转换
e.g.
口袋中有红、黄、蓝、白、黑五种颜色,每次从口袋中任取三个球,取到三种不同颜色的可能取法
运行环境:VS2017
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{enum color {red,yellow,blue,white,black};color pri;int i, j, k, n = 0, loop;for (i = red; i <= black; i++){for (j = red; j <= black; j++){if (i != j){for (k = red; k <= black; k++){if (k != i && k != j){n++;cout << setw(3) << n;for (loop = 1; loop <= 3; loop++){switch (loop){case 1:pri = color(i); break;case 2:pri = color(j); break;case 3:pri = color(k); break;default:break;}switch (pri){case red:cout << setw(8) << "red"; break;case yellow:cout << setw(8) << "yellow"; break;case blue:cout << setw(8) << "blue"; break;case white:cout << setw(8) << "white"; break;case black:cout << setw(8) << "black"; break;}}cout << endl;}}}}}cout << "total:" << n << endl;return 0;
}
以下是运行结果:
1 red yellow blue2 red yellow white3 red yellow black4 red blue yellow5 red blue white6 red blue black7 red white yellow8 red white blue9 red white black10 red black yellow11 red black blue12 red black white13 yellow red blue14 yellow red white15 yellow red black16 yellow blue red17 yellow blue white18 yellow blue black19 yellow white red20 yellow white blue21 yellow white black22 yellow black red23 yellow black blue24 yellow black white25 blue red yellow26 blue red white27 blue red black28 blue yellow red29 blue yellow white30 blue yellow black31 blue white red32 blue white yellow33 blue white black34 blue black red35 blue black yellow36 blue black white37 white red yellow38 white red blue39 white red black40 white yellow red41 white yellow blue42 white yellow black43 white blue red44 white blue yellow45 white blue black46 white black red47 white black yellow48 white black blue49 black red yellow50 black red blue51 black red white52 black yellow red53 black yellow blue54 black yellow white55 black blue red56 black blue yellow57 black blue white58 black white red59 black white yellow60 black white blue
total:60
相关文章:

ubuntu设置securecrt串口权限
在普通用户的模式下,用SecureCRT链接串口交换机,开始会提示/dev/ttyUSB0权限不足,无法打开,临时的解决办法是 chmod 0rw /dev/ttyUSB0 但是这个重启后便没了作用,下面的方法能在重启后让普通用户链接串口设备。 sudo v…

深入解析Angular Component的源码示例
本篇文章主要介绍了剖析Angular Component的源码示例,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。 Web Component 定义 W3C为统一组件化标准方式,提出Web Co…

VS2017 cout 不明确
各种头文件没问题。直接声明名称空间 using namespace std; 解决方法: 然后把using namespace std;这句给注释掉,等出现错误提示,在取消注释,然后就好了

google breakpad native crash分析工具
一. BreakPad简介Google breakpad是一个跨平台的崩溃转储和分析框架和工具集合。Breakpad由三个主要组件:client,以library的形式内置在你的应用中,当崩溃发生时写 minidump文件symbol dumper, 读取由编译器生成的调试信息(debugg…

Java基础教程(15)--枚举类型
枚举类型定义了一个枚举值的列表,每个值是一个标识符。例如,下面的语句声明了一个枚举类型,用来表示星期的可能情况: public enum Day {SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY } 实际上,这个…

基于AOA协议的android USB通信
摘 要:AOA协议是Google公司推出的用于实现Android设备与外围设备之间USB通信的协议。该协议拓展了Android设备USB接口的功能,为基于Android系统的智能设备应用于数据采集和设备控制领域提供了条件。介绍了Android系统下USB通信的两种模式,并给…

Linux下使用ssh动态验证码登陆机器
ssh动态验证码登录机器Google Authenticator是一个动态验证码程序,兼容各种智能手机平板设备,可以用来做各种帐号的二次验证,增加帐号的安全性。SSH是Linux系统的最重要防线之一,为了防止密码泄露或者被爆破,可以使用G…
【C++】枚举类型应用
运行环境:VS2017 可以参考:【C】枚举类型 医院内科有A,B,C,D,E,F,G共七位医生,每人在一周内要值一次夜班,排班的要求: (1ÿ…

量子力学又一突破,中国科学家首次实现量子纠缠态自检验
这也是国际上首个具有“高可靠、抗干扰”特性的纠缠态自检验实验。 最近,量子力学领域又传来好消息,中国科学技术大学的郭光灿院士团队在实验中首次实现了量子纠缠态的自检验,推动了自检验在各种量子信息过程中的基础发展。 何为量子纠缠&a…

awk命令中执行多条shell命令
awk中使用的shell命令,有2种方法:一。使用system()二。使用print cmd | “/bin/bash”http://www.gnu.org/software/gawk/manual/gawk.html#I_002fO-Functions一。使用所以system()awk程序中我们可以使用sy…

LAMP高级环境实战
LAMP架构应用实战介绍LAMP指的Linux(操作系统)、Apache(HTTP 服务器),MySQL(数据库软件) 和PHP(有时也是指Perl或Python) 的第一个字母,一般用来建立web 服务…

【C++】用类来处理排序问题
运行环境:VS2017 由小到大排序 可以看出在主函数中所做的事: (1)定义对象。 (2)向各对象发出“消息”,通知各对象完成有关任务。即调用有关对象的成员函数,去完成相应的操作。 …

winform 弹出窗体位置设定
[转]https://www.cnblogs.com/liushenglin/p/5350641.html 一、C#中弹出窗口位置 加入命名空间using System.Drawing和using System.Windows.Forms假定窗口名为form1,则 form1.StartPosition FormStartPosition.CenterScreen;窗体位置在屏幕中间form1.StartPosition FormSta…
pkg-config工具在实际工程中的用法
在如今这个开源的环境里,想要开发某个功能,我们都会下意识的上网搜索有没有开源库,如果有开源库,那么好,下载下来给它编译好,使用。但是在使用过程中,你是否遇到不知如何将第三方库编译…

linux中pipe
调用pipe函数时在内核中开辟一块缓冲区(称为管道)用于通信,它有一个读端一个写端,然后通过filedes参数传出给用户程序两个文件描述符,filedes[0]指向管道的读端,filedes[1]指向管道的写端(很好记就像0是标准输入1是标准输出一样)。所以管道在用户程序看起来就像一个打开的文通r…
【C++】利用构造函数对类对象进行初始化
运行环境:VS2017 一、对象的初始化 每一个对象都应当在它建立之时就有就有确定的内容,否则就会失去对象的意义。 class Time {int hour 0;int min 0;int sec 0; }; 这种是错误的,类并不是一个实体,并不占储存空间ÿ…

自定义Chrome浏览器
一、全局 自用备份,窗体透明化、要添加对应网站的窗体class到对应的位置 /*主页背景*/ /*https://images.cnblogs.com/cnblogs_com/AardWolf/1350846/o_5900399dcdcbd.jpg*/ /*https://ws4.sinaimg.cn/large/0072Vf1pgy1foxkfzphb2j31hc0u0gvv.jpg*/body { backgrou…

ubuntu添加sudo权限
使用如下命令可以添加到用户组(也可是超级用户组)。 命令如下: sudo usermod -aG 超级用户组名 用户名 例子:sudo usermod -aG sudo username 其中a:表示添加,G:指定组名第二种方法是直接修改,…

File.separator
报告“No such file or diretory ”的异常,上传不了。后来发现是文件路径的问题。模拟测试环境是windowstomcat,而正式的的环境是linuxtomcat,文件路径的分隔符在windows系统和linux系统中是不一样。 比如说要在temp目录下建立一个test.txt文…
【C++】对象数组
运行环境:VS2017 对象数组:每个元素都是同类的对象 如果构造函数只有一个参数,在定义数组时可以直接在等号后面的花括号内提供实参。 Student stud[3]{60,70,80}; 如果构造函数有多个参数,则不能用在定义数组时直接提供所有实…

C# 算法系列一基本数据结构
一、简介 作为一个程序员,算法是一个永远都绕不过去的话题,虽然在大学里参加过ACM的比赛,没记错的话,浙江赛区倒数第二,后来不知怎么的,就不在Care他了,但是现在后悔了,非常的后悔!!!如果当时好好学算法的话,现在去理解一些高深的框架可能会很easy,现在随着C#基础和Web技能的提…

git管理大项目或者大文件
git 是追踪代码库演进的最佳选择,并且它能让你与你的同事间高效协作。当你想要追踪的库非常巨大时会发生什么?在这篇文章里,我会尝试着给你一些想法和技巧来恰当地处理不同种类的大仓库。两种大代码库如果仔细想想,大概会有两种导…

window下java开发环境安装
首先请去Java的官网上下载,最好下载最新版本地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 如图,点击下载java platform(JDK),然后选择接受接受协议(Accept …
【ACM】蛇形填数
先判断,再移动,而不是发现越界了再退回来。 #include "stdio.h" #include "string.h" #define maxn 20 int a[maxn][maxn]; int main() {int n, x, y, tot 0;scanf_s("%d", &n);memset(a, 0, sizeof(a));tot a[x …

Mybatis中Oracle和Mysql的Count字段问题
Mybatis中Oracle和Mysql的Count字段问题 我们在进行项目开发时经常会碰到查询总数的问题,所以我们直接是用select count(1) from table来进行查询。那么在Mybatis通常情况下我们是这么写的 <select id"testCount" resultType"int">select…

为什么free()时不需要传指针大小
malloc()和free()是c中两个非常基本的函数,但这种最基本的东西往往都是特别复杂的。malloc和free的原形如下:void *malloc(unsigned int num_bytes); void free(void *ptr);在c的标准中并没有定义这两个函数的具体实现,在我们最常用的gcc中&a…

redis cluster 安装配置
一、redis集群安装配置1、下载redis源码包并下载wget http://download.redis.io/releases/redis-3.0.7.tar.gz $ tar xzf redis-3.0.7.tar.gz $ cd redis-3.0.7 yum -y install gcc gcc-c libstdc-devel #解决相关依赖关系$ make && make install 因我们安装redis 集…

【ACM】汉诺塔
https://blog.csdn.net/xueerfei008/article/details/9904681

什么是机器人底盘 答案在这里!
机器人底盘承载了机器人本身的定位、导航及避障等基本功能,可帮助机器人实现智能行走,以思岚科技的ZEUS为例,内置SLAMWARE高性能自主定位导航模块,用户可根据实际需要搭载不同的应用,可广泛适用于餐厅、商场、银行、办…

嵌入式linux内存使用和性能优化
这本书有两个关切点:系统内存(用户层)和性能优化。 这本书和Brendan Gregg的《Systems Performance》相比,无论是技术层次还是更高的理论都有较大差距。但是这不影响,快速花点时间简单过一遍。 然后在对《Systems Performance》进行详细的学…