/************************************************************************************
  口袋中有红、黄、蓝、白、黑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;
}

