利用枚举类型变量求从5种颜色球中取3个不同颜色球的取法
《C程序设计(第二版)》 谭浩强 著
11.9 例11.3 口袋里有红、黄、蓝、白、黑5种颜色的若干个。每次从口袋中取出3个球,问得到3种不同色的球的可能取法,输出每种排列的情况。
程序(在VS2008环境下main.cpp中编写、编译、运行)
#include <stdio.h>
#include <stdlib.h>
void main()
{
enum color {red, yellow, blue, white, black};
int i, j, k, n, loop, pri;
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 = n+1;
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;
default: break;
}
}
printf("\n");
}
}
}
}
}
printf("\ntotal:%5d\n", n);
system("pause");
}
结果