口袋中球的取出顺序问题,比赛名单问题

   对于以下这两种问题是离散数学与概论在编程中的应用:     

两个乒乓球队进行比赛,各队人。甲队为A,B,C     乙队为 X,Y,Z    抽签决定比赛名单。有人向队员打听比赛名单,A说他不和X比,C说他不和X,Z比,请编程序找出3组比赛名单
     

#include<stdio.h>

void Game_list()
{
	char i,j,k; /*i是a的对手;j是b的对手;k是c的对手*/ 
	for (i='x';i<='z';i++)
		for (j='x';j<='z';j++)
			if (i!=j)
				for (k='x';k<='z';k++)
					if (i!=k && j!=k)
						if (i!='x' && k!='x' && k!='z')
							printf("A--%c\nB--%c\nC--%c\n",i,j,k);
}
int main()
{
	
	Game_list();
	
	return 0;
}

  口袋中有红、黄、蓝、白、黑5种颜色的球若干个。每次从口袋中任意取出3个球,问得到3种不同颜色的球的可能取法,输出每种排列的情况。

 

#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++)//当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=n+1;//使累计值n加1
						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 ;//使pri的值为j
							case 3: pri=color(k);break ;//使pri的值为k
							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、付费专栏及课程。

余额充值