标签:
枚举类型(enumeration)是C++中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。
定义格式:枚举类型的定义格式为:
enum <类型名> {<枚举常量表>};
其中:
应用举例:
enum color_set1 {RED, BLUE, WHITE, BLACK}; //定义枚举类型color_set1
enum week {Sun, Mon, Tue, Wed, Thu, Fri, Sat}; //定义枚举类型week
重要提示:
定义枚举类型的主要目的是:增加程序的可读性。枚举类型最常见也最有意义的用处之一就是用来描述状态量,这点将在第9章 输入输出流类看到。
定义格式:定义枚举类型之后,就可以定义该枚举类型的变量,如:
color_set1 color1, color2;
亦可类型与变量同时定义(甚至类型名可省),格式如下:
enum {Sun,Mon,Tue,Wed,Thu,Fri,Sat} weekday1, weekday2;
相关操作
应用举例
【例2.24】 口袋中有红、黄、蓝、白、黑五种颜色的球若干个,每次从口袋中取三个不同颜色的球,统计并输出所有的取法。(查看动画演示:演示1 演示2)
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
enum color_set {red,yellow,blue,white,black};
color_set color;
int i,j,k,counter=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){ //第三个球不同于前两个,满足要求
counter++;
if((counter)%22==0){ //每屏显示22行
cout<<"请按回车键继续";
cin.get();
}
cout<<setw(15)<<counter;
/*下面输出每种取法,一行为一种取法的三个颜色*/
for(loop=1;loop<=3;loop++){
switch(loop){
case 1: color=(color_set) i; break; //第一个是i
case 2: color=(color_set) j; break; //第二个是j
case 3: color=(color_set) k; break; //第三个是k
}
switch(color){
case red: cout<<setw(15)<<"red"; break;
case yellow:cout<<setw(15)<<"yellow";break;
case blue: cout<<setw(15)<<"blue"; break;
case white: cout<<setw(15)<<"white"; break;
case black: cout<<setw(15)<<"black"; break;
}
}
cout<<endl; //输出一种取法后换行
}
}
cout<<"共有:"<<counter<<"种取法"<<endl;
return 0;
}
重要提示
转载自微学苑,原文网址:http://www.weixueyuan.net/view/5824.html
标签:
原文地址:http://www.cnblogs.com/liuteng/p/5569442.html