口袋中有红,黄,黑,白,蓝,五色球若干,每次从口袋里面取3个不同颜色球,问有多少种?用枚举类型做?用数学一算答案是10,但是编的怎么是60,错在哪?
#include
void main()
{ enum color{red,yellow,blue,white,black};//枚举类型的定义
enum color prj;
int n=0,loop,i,j,k;
for(i=red;i<=black;i++)
for(j=red;j<=black;j++)
if(j!=i)
{for(k=red;k<=black;k++)
if((k!=i)&&(k!=j))
{n=n+1;
cout.width(4);
cout<<n;
for(loop=1;loop<=3;loop++)
{switch(loop)
{case 1:prj=(enum color)i;break;
case 2:prj=(enum color)j;break;
case 3:prj=(enum color)k;break;
default:break;
}
switch(prj)
{case red:
cout<<" red";
case yellow: cout<<" yellow";
case blue: cout<<" blue";
case white:cout<<" white";
case black:cout<<" black";
default:break;
}
}
cout<<endl;
}
}
cout<<"total:"<<n<<endl;
}
|