枚举类型例题:口袋中有红、黄、蓝、白、黑5种颜色的球若干个。每次从口袋中先取出3个球,问得到3种不同色的球的可能取法,打印出各种排列的情况。
1 #include<stdio.h> 2 int main(void) 3 { 4 enum Color {red,yellow,blue,white,black}; 5 int i,j,k; 6 int n=0,pri,loop; 7 for (i=red;i<=black;i++) 8 { 9 for (j=red;j<=black;j++) 10 { 11 if(i!=j) 12 { 13 for(k=red;k<=black;k++) 14 { 15 if((k!=i)&&(k!=j)) 16 { 17 n=n+1; 18 printf("%-4d",n); 19 for(loop=1;loop<=3;loop++) 20 { 21 22 switch(loop) 23 { 24 case 1:pri=i;break; 25 case 2:pri=j;break; 26 case 3:pri=k;break; 27 default:break; 28 } 29 switch(pri) 30 { 31 case red:printf("%-10s","red");break; 32 case yellow:printf("%-10s","yellow");break; 33 case blue:printf("%-10s","blue");break; 34 case white:printf("%-10s","white");break; 35 case black:printf("%-10s","black");break; 36 default:break; 37 } 38 } 39 printf("\n"); 40 } 41 } 42 } 43 } 44 } 45 printf("\nTotal is:%d\n",n); 46 }