C程序设计11章 枚举类型例题
口袋中有红、黄、蓝、白、黑5种颜色的球若干个。每次从口袋中先后取出3个球,问得到3种不同色的球的可能取法,输出每种排列的情况。
#include <stdio.h> int main(){ enum color{red, yellow, blue, white, black};//声明一个枚举类型,枚举元素是常量, //在编译时按定义时的顺序使他们的值为0,1,2,... enum color pri; //定义枚举类型的变量 int i,j,k,n=0,loop; 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){ printf("%-4d",++n); //熟练这种用法 for(loop=0; loop<3; loop++){ //为了将i,j,k的值都赋给pri,定义一个循环,每个循环中将i或者j或者k赋给pri switch(loop){ case 0: pri=(enum color)i; break; case 1: pri=(enum color)j; break; case 2: pri=(enum color)k; break; default : break; } //为了输出i,j,k的值,先定义一个多分支选择语句 switch(pri) { case red: printf("%-7s","red"); break; case yellow: printf("%-7s","yellow"); break; case blue: printf("%-7s","blue"); break; case white: printf("%-7s","white"); break; case black: printf("%-7s","black"); break; default : break; } }//end_for printf("\n"); } } } } } printf("\ntotal:%5d\n",n); return 0; }