/*
* 程序的版权和版本声明部分
* Copyright (c)2012, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: fun.cpp
* 作 者:王飞
* 完成日期:2013 年2 月 15日
* 版本号: v1.0
* 对任务及求解方法的描述部分:枚举类型
* 输入描述:略
* 问题描述:略
* 程序输出:如下
*/
#include <iostream>
#include <iomanip> //用到setw控制符
using namespace std;
int main()
{
enum color{red,yellow,blue,white,black}; //声明枚举类型color
color pri; //定义color类型变量pri
int i,j,k,n=0,loop; //n是累计不同颜色的组合数
for(i=red;i<=black;i++)
for(j=red;j<=black;j++) //当j是一颜色时
if(i!=j) //若两个颜色 不相同时
{
for(k=red;k<=black;k++) //只有前两个球颜色不同时才会检查第3个球的颜色
if((k!=i)&&(k!=j)) //3个球颜色都不同
{
n+=1; //累计n
cout<<setw(3)<<n; //输出n字宽长度为3
for(loop=1;loop<=3;loop++) //先后对3个球处理
{
switch (loop) //loop先后1,2,3
{
case 1: pri=color(i);break; //color(i)是强制类型转换,使pri的值为i
case 2: pri=color(j);break;
case 3: pri=color(k);break;
default:break;
}
switch(pri) //判断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;
default:break;
}
}
cout<<endl;
}
}
cout<<"total="<<n<<endl; //输出符合条件的组合的个数
return 0;
}
截图:
心得体会:刚刚接触确实感觉很难,慢慢的熟悉了就好了。