/** 口袋里有红、黄、蓝、白、黒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) { case red:printf("%-10s","red");break; case yellow:printf("%-10s","yellow");break; case blue:printf("%-10s","blue");break; case white:printf("%-10s","white");break; case black:printf("%-10s","black");break; //不能用printf("%s",red);来输出“red”字符串。 //必须打上引号。 default :break; } } putchar('\n'); } } } } printf("\ntotal:%5d\n",n); return 0; }
这个题完全可以用常量1-5来代替颜色,
但这样写更直观,不是吗!