枚举解决球颜色问题

/*
* 程序的版权和版本声明部分
* 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;

}

 

截图:

心得体会:刚刚接触确实感觉很难,慢慢的熟悉了就好了。

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值