/************************************************************************************
口袋中有红、黄、蓝、白、黑5种颜色的球若干个。每次从口袋中先
后取出3个球,求得到3种不同颜色的球的可能取法,并输出每种排列的情
况及多少种可能。
使用枚举法列举颜色。
****************************************************************************************/
#include <stdio.h>
#include <stdlib.h>
int main()
{
enum color{red,yellow,blue,white,black};
enum color i,j,k,pri;
int n,loop;
n = 0;
for(i=red;i<=black;i++)
for(j=red;j<=black;j++)
if(i!=j)
{
for(k=red;k<=black;k++)
if((k!=i)&&(k!=j))
{
n++;
printf("%-4d",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)
{
casered: printf("%-10s","red"); break;
caseyellow:printf("%-10s","yellow"); break;
case blue: printf("%-10s","blue"); break;
case white: printf("%-10s","white"); break;
case black: printf("%-10s","black"); break;
default : break;
}
}
printf("\n");
}
}
printf("\ntotal:%5d\n",n);
return 0;
}