口袋中有红、黄、蓝、白、黑5种颜色的球若干。每次从口袋中任意取出3个球,问得到3中不同颜色的球的可能取法,输出每种排列的情况。
分析:球的颜色只有5种,每一个球的颜色只能是这5种之一,因此可以用枚举类型变量来处理。
#include<iostream>
using namespace std;
int main (){
enum {red=1,yellow,blue, white ,black};
int i,j,k,loop;
int n=0;
int pri;
for(i=red;i<=black;++i){
for(j=red;j<=black;j++){
if(i!=j){
for(k=red;k<black;k++){
if((k!=j)&&(k!=i)){
n++;
for(loop=1;loop<=3;loop++){
switch(loop){
case 1: pri=i;break;
case 2: pri=j;break;
case 3: pri=k;break;
default: break;
}
switch(pri){
case red:
cout<<" red "; break;
case yellow:
cout<<" yellow ";break;
case blue:
cout<<" blue ";break;
case white:
cout<<" white "; break;
case black:
cout<<" black ";break;
default : break;
}
}
cout<<n<<endl;
}
}
}
}
}
cout<<"total: "<<n<<endl;
return 0;
}